将网格视图的特定元素存储为字符串
本文关键字:元素 存储 字符串 网格 视图 | 更新日期: 2023-09-27 18:33:30
我在aspx和c#中的代码有问题
网格视图如下所示
FID Name
100 ab *Download*
200 bb *Download*
<asp:LinkButton ID="lnkDownload" runat="server" OnClick = "DownloadFile"
CommandArgument='<%Eval("FID")%>' Text="Download" CommandName="DownloadFile" />
我需要下载每个人的 FID 信息,所以我正在执行以下代码,但它没有返回任何内容
protected void DownloadFile(object sender, EventArgs e)
{
string FID = ((LinkButton)sender).CommandArgument;
var dt = GetData("select * from Personal_det where FID = '"+ FID +"'");
if (dt != null && dt.Rows.Count > 0)
{
DataRow dr = dt.Rows[0];
//
// more code
//
}
}
但是不尊重 FID,如果我尝试执行代码
protected void DownloadFile(object sender, EventArgs e)
{
string FID = ((LinkButton)sender).CommandArgument;
var dt = GetData("select * from Personal_det “ );
if (dt != null && dt.Rows.Count > 0)
{
DataRow dr = dt.Rows[0];
//
// more code
//
}
}
此代码将下载存储在会话中的 FID 所需的文档。所以我知道问题出在我包含在代码中的 sql 查询中,正如您在上面的网格视图中看到的那样,每一行都有一个每个 FID 的下载链接,所以我需要从网格视图访问 FID 并在我在代码中编写的 sql 查询中调用它
您可以使用gridView_RowCommand
事件。
protected void gridView_RowCommand(object sender, object sender, GridViewCommandEventArgs e)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
gridView.SelectedIndex = rowIndex;
if (e.CommandName == "DownloadFile")
{
DownloadFile(gridView.DataKeys[rowIndex]["FID"].ToString());
}
}
在 aspx 代码中使用 DataKeyNames="FID",链接按钮应如下所示
<asp:LinkButton ID="lnkDownload" runat="server" CommandArgument='<%#Container.DataItemIndex%>' Text="Download" CommandName="DownloadFile" />
希望这有帮助
<%Eval("FID")%>中缺少#,请将其替换为<%# Eval("FID")%>