加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – GridView:点击按钮获取行的数据键

发布时间:2020-12-16 09:32:28 所属栏目:asp.Net 来源:网络整理
导读:当我有一个具有OnClick事件的行内的按钮时,如何获取GridView行的DataKeyName的值.在我的按钮的OnClick事件中,我想获得按钮所在行的DataKeyName. 这可能吗? asp:GridView ID="myGridView" run="server" Columns asp:TemplateField HeaderText="Column 1" Ite
当我有一个具有OnClick事件的行内的按钮时,如何获取GridView行的DataKeyName的值.在我的按钮的OnClick事件中,我想获得按钮所在行的DataKeyName.

这可能吗?

<asp:GridView ID="myGridView" run="server">
     <Columns>
          <asp:TemplateField HeaderText="Column 1">
               <ItemTemplate>
                   ... bunch of html codes
                   <asp:Button ID="myButton" UseSubmitBehavior="false" runat="server" Text="Click Me" onclick="btnClick_Click" />
               </ItemTemplate>
           </asp:TemplateField>
     </Columns>
</asp:GridView>

在我的代码隐藏中

protected void btnClick_Click(object sender,EventArgs e)
{
    // How can I get the DataKeyName value of the Row that the Button was clicked?
}

解决方法

当我使用GridView时,我通常不使用按钮的OnClick事件.相反,我在GridView上使用OnRowCommand事件,并将数据绑定到按钮的CommandArgument属性.您可以从事件处理程序的GridViewCommandEventArgs参数中检索命令参数.

您可以使用CommandName参数绑定任意字符串,以区分您拥有的任何不同类型的按钮.请注意,某些命令名称已用于其他事件,例如“编辑”,“更新”,“取消”,“选择”和“删除”.

更新:

这是一个例子,假设数据键被称为“ID”:

<asp:GridView ID="myGridView" runat="server" OnRowCommand="myGridView_RowCommand">
     <Columns>
          <asp:TemplateField HeaderText="Column 1">
               <ItemTemplate>
                   ... bunch of html codes
                   <asp:Button ID="myButton" runat="server" Text="Click Me" CommandName="ClickMe" CommandArgument='<%# Eval("ID") %>' />
               </ItemTemplate>
           </asp:TemplateField>
     </Columns>
</asp:GridView>

在代码隐藏中:

protected void myGridView_RowCommand(object sender,GridViewCommandEventArgs e)
{
    var datakey = e.CommandArgument;
    // ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读