在gridview中获取复选框状态

时间:2012-11-05 07:31:19

标签: c# asp.net gridview checkbox

如何在gridview中获取复选框的复选框状态? 我已经以编程方式添加了它们,

  foreach (GridViewRow gvr in GridView1.Rows)
  {
     tbCell = new TableCell();
     cbGV = new CheckBox();
     tbCell.Controls.Add(cbGV);
     gvr.Cells.Add(tbCell);
  {

通常情况下,当他们在itemtemplate中时,我会得到像这样(下面)的复选框的状态,但是这不起作用,所以任何想法的人?

  foreach (GridViewRow getRowItems in GridView1.Rows)
  {
      chkBox = (CheckBox)(getRowItems.Cells[0].FindControl("cbGV"));

      if(chkBox.Checked == false) 
      {
      chkBox.Checked = true;
      }
  }

2 个答案:

答案 0 :(得分:3)

尝试添加这样的复选框,即作为模板列,而不是尝试搜索这也可以工作,而不是动态添加复选框

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
<Columns> 
<asp:TemplateField> 
<ItemTemplate> 
<asp:CheckBox ID="cbGV" runat="server" /> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 

这是行不通的,因为你忘了给元素

提供id
cbGV = new CheckBox();
cbGV.ID="cbGV";
tbCell.Controls.Add(cbGV);

尝试按上述方式提供ID,然后尝试在行中找到复选框

答案 1 :(得分:0)

foreach (GridViewRow gvr in GridView1.Rows)
{
 tbCell = new TableCell();
 cbGV = new CheckBox();
 cdGV.id="cbGV";
 tbCell.Controls.Add(cbGV);
 gvr.Cells.Add(tbCell);
}


foreach (GridViewRow getRowItems in GridView1.Rows)
{
  chkBox = (CheckBox)(getRowItems.Cells[0].FindControl("cbGV"));

  if(chkBox.Checked == false) 
  {
  chkBox.Checked = true;
  }

}