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

 

 

你可能感兴趣的:(GridView)