1

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

  foreach (GridViewRow gvr in GridView1.Rows)
  {
     tbCell = new TableCell();
     cbGV = new CheckBox();
     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;
      }
  }
4

2 回答 2

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,而不是尝试在行中查找复选框

于 2012-11-05T07:38:45.797 回答
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;
  }

}

于 2012-11-06T09:31:37.287 回答