c# - 单击按钮获取行的 DataKeyNames

标签 c# asp.net gridview

我有一个 gridview,每行都有按钮:

enter image description here

按钮位于模板字段中:

<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>

如何在点击时获取数据 key 名称?

protected void viewHoursButton_OnClick(object sender, EventArgs e)
{
    //get PK_NonScrumStory for clicked row
}

最佳答案

我想通了:

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);
}

关于c# - 单击按钮获取行的 DataKeyNames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823803/

相关文章:

javascript - Yii加载动态添加(使用ajax)GridView TypeError : settings is undefined

.net - 如何隐藏 WPF ListView 的 header ?

C# - 将 List<JToken> 转换为 List<string> 单行

c# - 如何在椭圆内绑定(bind)一个圆?

C# SQL,多个命令

ASP.NET 无法访问 Windows 临时文件夹?

asp.net - 添加对已部署 ASP.NET 站点的程序集引用

c# - 除非 fiddler 正在运行,否则 HttpWebRequest 不起作用

c# - 如何在 C# 中为 IIS 用户授予文件夹权限?

.net - GridView 在回发期间丢失数据