2
私は3つの列fileID、uploadedByとdeleteを持つgridviewテーブルを持っています。ファイルの所有者のみがファイルを削除できます。ファイルを削除した人がファイルの所有者であることをどのように検証できますか?私はログインクレデンシャルを持っており、私はuploadedBy文字列を持っています。ログイン資格情報を取得できますが、クリックされた削除リンクからuploadedBy列を取得できません。行のリンクからグリッドビューの行の詳細を取得
<asp:TemplateField HeaderText="View" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:HyperLink ID="lnkView" runat="server" NavigateUrl='<%# Eval("Id", "~/ViewFile.aspx?Id={0}") %>' Text="View"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField ItemStyle-HorizontalAlign="Center" DataNavigateUrlFields="Id" DataNavigateUrlFormatString="~/DeleteFile.aspx?Id={0}" HeaderText="Delete" Text="Delete" />
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.DataRow:
FileInfo myFileInfo = (FileInfo)e.Row.DataItem;
switch (myFileInfo.ContentType.ToLower())
{
case "image/pjpeg": // .jpg files
case "image/gif": // .gif files
case "application/msword": // .doc files
case "text/plain": // .txt files
case "application/vnd.ms-excel":
// Do nothing. When the row contains a viewable type,
// we want the View link to be enabled.
break;
default:
// Find the View link and disable it.
HyperLink myLink = (HyperLink)e.Row.FindControl("lnkView");
myLink.Enabled = false;
break;
}
break;
}
}
エラーが発生しました。 'FileInfo'タイプのオブジェクトを 'System.Data.DataRowView'にキャストすることができません。 – reddevil
表示/非表示の削除ボタンがありますか? –
Nope。次の行にエラーが表示されます。System.Data.DataRow dr = .... – reddevil