如何将未绑定的复选框列添加到ASP.NET GridView?

时间:2011-08-03 15:22:39

标签: asp.net ajax gridview dynamic postback

.NET v3.5

我有一些似乎是我以前工作过的简单代码:

TableCell cell = new TableCell();
CheckBox c = new CheckBox();
c.AutoPostBack = true;
c.ID = string.Format( "cb_{0}", row.RowIndex ); // "row" is a GridViewRow
cell.Controls.Add( c );
row.Cells.AddAt( 0, cell );

问题是回发之间没有持久的复选框。但是如果我只是在每次回发时调用该方法,它会在网格的前面添加一个新的空白列每次,它会将每行回发的行中的数据推向右侧。有点奇怪;每行将具有相同数量的单元格而不会更改。只是数据被“转移”到右边。因此,cell[1]中的数据会在回发后显示在cell[2]中。然后在下一次回发后的单元格[3]中。等

这是怎么回事?请记住这些数据是无限的。网格本身不是模板化的,而是从代码中即时创建的。我只需要一种方法来检查用户选择的行。

2 个答案:

答案 0 :(得分:0)

当用户选中此框时,您回复了吗?你每次写页面时都在创建这个网格吗?为什么不首先检查位置0中的列是否已经是复选框类型?

答案 1 :(得分:0)

我认为您需要将添加新列的代码放在页面init的网格中。