zoukankan      html  css  js  c++  java
  • GridView的RowCommand事件中如何得到主键值及子控件

     GridView的RowCommand事件,当CommandName不是gridview 默认的三种命令名时,对表格的操作需触发RowCommand事件

    UI代码:

    代码
    <asp:GridView ID="grdResult" runat="server" CssClass="DataGrid_Container" AllowPaging="False"    
       AutoGenerateColumns
    ="False" BorderWidth="0"  OnRowDataBound="grdResult_RowDataBound" DataKeyNames="PlanId"  >   
       
    <RowStyle CssClass="DataGrid_Item" />   
      
       <Columns> 
           
    <asp:TemplateField  HeaderText="名称" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" >   
             
    <ItemTemplate  >                
              
    <asp:HyperLink ID="DocName" Text='<%# Eval("DocName") %>' runat="server"></asp:HyperLink>   
             
    </ItemTemplate>   
           
    </asp:TemplateField> 
         
    <asp:TemplateField HeaderText="执行操作">
           
    <ItemTemplate>
              
    <asp:LinkButton id="lbtToRun" runat="server" CommandName="cmdToRun" CommandArgument='<%# Eval("PlanID")%>'></asp:LinkButton>
              
    <asp:HiddenField id="hidUserName" runat="server" Value='<%#Eval("UserName") %>'></asp:HiddenField>
              
    </ItemTemplate>
            
    </asp:TemplateField>                           
         
    </Columns>                 
    </asp:GridView>  

    假如在C# RowCommand事件中,我们要找到当前行的隐藏域hidUserName的值和Gridview的DataKey,被注释部分代码是错误的方法,在能用RowCommand事件中

    代码

     protected void grdResult_RowCommand(object sender, GridViewCommandEventArgs e)
     {
         
    if (e.CommandName == "cmdToRun")//控制
          {
              
    //PlanID 为Key值
              
    //下面被注释掉的方法找不到隐藏域hidUserName
              
    //HiddenField hidUserName = (HiddenField)grdResult.SelectedRow.FindControl("hidUserName");            
              HiddenField hidUserName = (HiddenField)((Control)e.CommandSource).FindControl("hidUserName");
              
    //下面被注释掉的方法找不到DataKeys
              
    //string strid = grdResult.DataKeys[grdResult.SelectedIndex].Value.ToString();
              string strid = e.CommandArgument.ToString();
              
    //下面可以执行你要的操作
              
    AgentController.UpdateTable(hiduserName.value,strid);
            }
      }
  • 相关阅读:
    Shell需注意的语法问题
    iconv编码转换
    使用cocos创建的项目,如何进行源码调试?
    git切换到远程分支
    在 Git 中 Checkout 历史版本
    JAVA keytool 使用详解
    JAVA调用 keytool 生成keystore 和 cer 证书
    写出好的 commit message
    JAVA
    面试中关于Java你所需知道的的一切
  • 原文地址:https://www.cnblogs.com/fredx/p/1687278.html
Copyright © 2011-2022 走看看