ASP.NET C#在gridview记录中显示按钮

ASP.NET C#在gridview记录中显示按钮,c#,.net,asp.net,gridview,C#,.net,Asp.net,Gridview,我想向包含按钮控件的gridview添加一列。我使用ID(整数和主键)作为Gridview的第一列。我想要的是,当用户单击gridview任意给定行上的按钮时,我希望能够确定单击按钮所属行的ID Vam Yip在网格视图的模板中,将按钮的CommandArgument属性绑定到行的ID。然后在按钮click event上,从事件参数中检查commandArgument属性。这将为您提供与@Midhat的答案相匹配的ID,下面是一些示例代码: 背后的代码: public partial class

我想向包含按钮控件的gridview添加一列。我使用ID(整数和主键)作为Gridview的第一列。我想要的是,当用户单击gridview任意给定行上的按钮时,我希望能够确定单击按钮所属行的ID


Vam Yip

在网格视图的模板中,将按钮的CommandArgument属性绑定到行的ID。然后在按钮click event上,从事件参数中检查commandArgument属性。这将为您提供与@Midhat的答案相匹配的ID,下面是一些示例代码:

背后的代码:

public partial class _Default : System.Web.UI.Page
{
  List<object> TestBindingList;

  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
        TestBindingList = new List<object>();
        TestBindingList.Add(new { id = 1, name = "Test Name 1" });
        TestBindingList.Add(new { id = 2, name = "Test Name 2" });
        TestBindingList.Add(new { id = 3, name = "Test Name 3" });

        this.GridView1.DataSource = TestBindingList;
        this.GridView1.DataBind();
    }

  }

  protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {         
    if (e.CommandName == "Select")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        this.Label1.Text = this.GridView1.DataKeys[index]["id"].ToString();
    }
  }
}
public分部类\u默认值:System.Web.UI.Page
{
列表TestBindingList;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
TestBindingList=新列表();
Add(new{id=1,name=“testname 1”});
Add(new{id=2,name=“testname 2”});
Add(new{id=3,name=“testname 3”});
this.GridView1.DataSource=TestBindingList;
this.GridView1.DataBind();
}
}
受保护的void GridView1_row命令(对象发送方,GridViewCommandEventArgs e)
{         
如果(如CommandName==“选择”)
{
int index=Convert.ToInt32(e.CommandArgument);
this.Label1.Text=this.GridView1.DataKeys[index][“id”].ToString();
}
}
}
标记:

<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server"  
    onrowcommand="GridView1_RowCommand" DataKeyNames="id">
    <Columns>
        <asp:TemplateField HeaderText="ButtonColumn">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" CausesValidation="false" 
                    CommandName="Select" Text="ClickForID"
                     CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="ID"></asp:Label>


</form>