获取按钮点击行的DataKeyNames [英] Getting DataKeyNames for row on button click
本文介绍了获取按钮点击行的DataKeyNames的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在每行都有一个带有按钮的gridview:
这些按钮位于模板字段中:
< asp:GridView ID =storyGridViewrunat =serverAllowSorting =TrueAutoGenerateColumns =False
BackColor =#DEBA84BorderColor =#DEBA84BorderStyle =None BorderWidth =1pxCellPadding =3
CellSpacing =2DataKeyNames =PK_NonScrumStoryDataSourceID =SqlDataSource1>
...
< asp:TemplateField HeaderText =Actions>
< ItemTemplate>
< asp:Button ID =viewHoursButtonrunat =serverText =View HoursOnClick =viewHoursButton_OnClick/>
< asp:Button ID =addHoursButtonrunat =serverText =Add HoursOnClick =addHoursButton_OnClick/>
< asp:Button ID =editButtonrunat =serverText =EditOnClick =editButton_OnClick/>
< asp:Button ID =deleteButtonrunat =serverText =DeleteOnClick =deleteButton_OnClick/>
< / ItemTemplate>
< / asp:TemplateField>
如何在点击时获取数据键名称?
protected void viewHoursButton_OnClick(object sender,EventArgs e)
{
//获得点击行的PK_NonScrumStory
}
解决方案
我发现:
protected void viewHoursButton_OnClick(object sender,EventArgs e)
{
Button btn = sender as Button;
GridViewRow row = btn.NamingContainer as GridViewRow;
string pk = storyGridView.DataKeys [row.RowIndex] .Values [0] .ToString();
System.Diagnostics.Debug.WriteLine(pk);
}
I have a gridview with buttons in each row:
The buttons are in a templatefield:
<asp:GridView ID="storyGridView" runat="server" AllowSorting="True" AutoGenerateColumns="False"
BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3"
CellSpacing="2" DataKeyNames="PK_NonScrumStory" DataSourceID="SqlDataSource1">
...
<asp:TemplateField HeaderText="Actions">
<ItemTemplate>
<asp:Button ID="viewHoursButton" runat="server" Text="View Hours" OnClick="viewHoursButton_OnClick" />
<asp:Button ID="addHoursButton" runat="server" Text="Add Hours" OnClick="addHoursButton_OnClick" />
<asp:Button ID="editButton" runat="server" Text="Edit" OnClick="editButton_OnClick" />
<asp:Button ID="deleteButton" runat="server" Text="Delete" OnClick="deleteButton_OnClick" />
</ItemTemplate>
</asp:TemplateField>
How do I get the data key name on click?
protected void viewHoursButton_OnClick(object sender, EventArgs e)
{
//get PK_NonScrumStory for clicked row
}
解决方案
I figured it out:
protected void viewHoursButton_OnClick(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow row = btn.NamingContainer as GridViewRow;
string pk = storyGridView.DataKeys[row.RowIndex].Values[0].ToString();
System.Diagnostics.Debug.WriteLine(pk);
}
这篇关于获取按钮点击行的DataKeyNames的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文