获取按钮点击行的DataKeyNames [英] Getting DataKeyNames for row on button click

查看:94
本文介绍了获取按钮点击行的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆