从buttonField按下获取GridView数据?

时间:2015-05-03 21:40:53

标签: c# asp.net gridview

所以我有一个用于C#Web应用程序的GridView,它有一个Buttonfield,当点击该按钮时,我需要获取该行的一个字段的值并将其存储在变量中以便在某些变量中处理方式。

然而,GridView和ButtonField都没有任何方法可以做到这一点。

任何人都可以推荐一种从GridView获取数据的方法,或者如果这是不可能的,提供此功能的不同类型的视图,同时仍然显示整个表(例如,不是DetailsView)

2 个答案:

答案 0 :(得分:1)

您可以点击此链接:https://msdn.microsoft.com/en-us/library/bb907626(v=vs.140).aspx

  • 定义Button的CommandName。
  • 在GridView中定义RowCommand事件并检查CommandName。
  • 获取行的索引。
  • 使用Map
  • 获取列

答案 1 :(得分:0)

如果您使用如下所示的asp:TemplateField,则可以使用RowCommand

访问行内容

标记

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="lblCode" runat="server" Text='<%# Eval("CustomerID") %>'>
        </asp:Label>
    </ItemTemplate>
</asp:TemplateField>
<asp:ButtonField CommandName="AddCode" Text="Add New"/>

代码

protected void gvwSearch_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName == "AddCode")
    {
        var clickedButton = e.CommandSource as Button;
        var clickedRow = clickedButton.NamingContainer as GridViewRow;
        var rows_lblCode = clickedRow.FindControl("lblCode") as Label;
        // now you can acccess all the label properties. For example,
        var temp = rows_lblCode.Text;

    }
}
相关问题