当我在具有 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
按钮的事件。相反,我使用OnRowCommand
GridView 上的事件,并将数据绑定到CommandArgument
按钮的属性。您可以从以下位置检索命令参数GridViewCommandEventArgs
事件处理程序的参数。
您可以使用CommandName
参数绑定任意字符串以区分任意不同kinds您拥有的按钮数量。请注意,某些命令名称已用于其他事件,例如“编辑”、“更新”、“取消”、“选择”和“删除”。
Update:
这是一个示例,假设数据密钥称为“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;
// ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)