GridView ItemCommand

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();    
        }

 

原文地址:https://www.cnblogs.com/xbding/p/3254477.html