.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]中。等
这是怎么回事?请记住这些数据是无限的。网格本身不是模板化的,而是从代码中即时创建的。我只需要一种方法来检查用户选择的行。
答案 0 :(得分:0)
当用户选中此框时,您回复了吗?你每次写页面时都在创建这个网格吗?为什么不首先检查位置0中的列是否已经是复选框类型?
答案 1 :(得分:0)
我认为您需要将添加新列的代码放在页面init的网格中。