GridView ItemCommand中取某行某列的值方法,这里提供两个常用的:
一、用CommandArgument属性取值页面如下:
<asp:TemplateColumn HeaderText="图片名称">
<ItemTemplate>
<asp:LinkButton ID="btnDownload" runat="server" CommandName="Download" CommandArgument='<%# Eval("IMG_SAVE_NAME") %>' ><%# Eval("IMG_NAME")%></asp:LinkButton> <asp:TextBox ID="Text1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
前台代码
后台:
if (e.CommandName == "Download")
{
string strFilePath = e.CommandArgument.ToString();
/// 获取控件的值
string text=(e.item.findControl("Text1") as TextBox).Text
}
后台代码
注意:用e.item.findControl时,只能获取ItemTemplate模板内控件值,如果是EditItemTemplate是获取不到的。
二、
在绑定GridView时增加DataKeyField
this.gvMain.DataSource = ds.Tables[0];
this.gvMain.DataKeyField = "IMG_NAME";
this.gvMain.DataBind();
然后在ItemCommand中获取
if (e.CommandName == "Download")
{
string strFileName = gvMain.DataKeys[e.Item.ItemIndex].ToString();
}