获得gridview列的价值

时间:2013-01-04 08:41:26

标签: c# asp.net

我想在Gridview的TemplateFeilds中将控件作为列,不应该隐藏它。每列末尾都有一个Button。我的问题是我应该使用什么控件以及如何获取Gridview中单击Button的列的特定行的值。

4 个答案:

答案 0 :(得分:3)

您想获得什么价值?

您可以处理按钮的点击事件,然后将sender投放到Button,将NamingContainer投放到GridViewRow。然后,您就可以找到该行中的所有其他控件。

protected void Button1_Clicked(Object sender, EventArgs e)
{
    // get the button reference
    Button btn = (Button) sender;
    GridViewRow row = (GridViewRow) btn.NamingContainer;
    // assuming the primary key value is stored in a hiddenfield with ID="HiddenID"
    HiddenField hiddenID = (HiddenField) row.FindControl("HiddenID");
    int id = int.Parse(hiddenID.Value);
}

aspx(GridView的TemplateField)

<asp:Button ID="Button1" runat="server" Text="Click Me" OnClick="Button1_Clicked"/>
<asp:HiddenField ID="HiddenID" runat="server" Value='<%# Eval("PrimaryKeyField") %>'/>

答案 1 :(得分:3)

您应该使用HiddenField作为GridView中的列,因为控件不可见,因此符合您的要求。 后面的代码将在gridview

的row命令中
   public  void gdView_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            if (e.CommandName == "sendvalue")
            {

                for (int i = 0; i < gdView.Rows.Count; i++)
                {
                    int getrow = Convert.ToInt32(e.CommandArgument);

                    HiddenField HiddenField1 = (HiddenField)gdView.Rows[getrow].FindControl("HiddenField1");
}
}
  

其中e.CommandName ==“sendvalue”是因为atrribute命令   Button的名称设置为“sendvalue”

设计中的HiddenField将为

  <asp:HiddenField ID="HiddenField1" runat="server"/>

答案 2 :(得分:2)

在模板中使用隐藏字段。

答案 3 :(得分:2)

您可以通过将要点击的按钮的CommandArgument属性设置为行数据绑定期间所需的值来更改方法。