在GridView的末尾插入复选框列

4
我的GridView包含20列,这些列是通过编程方式添加的(使用DataTable、DataColumn、DataRow和DataSet)。现在我需要在最后一列(第21列)插入一个复选框列。应该如何添加呢?
我尝试在.aspx文件中使用常规模板字段(从设计选项卡中添加),但这会将复选框添加为第一列,而不是最后一列。

你的意思是说网格视图中的列是自动生成的吗? - suryakiran
没有自动生成列 - xorpower
不是的。我使用数据表、列和行添加了列和行。 - xorpower
GridView的AutoGenerateColumns属性是“true”还是“false”? - suryakiran
没有提到任何事情。 - xorpower
@suryakiran: 这意味着它是自动生成的。 - naveen
2个回答

2

如果您正在使用 DataTable 绑定您的 GridView,请在设置 GridViewDataSource 之前执行此操作。

dataTable.Columns.Add("Select", Type.GetType("System.Boolean"));

DemoGrid.DataSource = dataTable;
DemoGrid.DataBind();

foreach (GridViewRow row in DemoGrid.Rows)
{
    //check box is the first control on the last cell.
    CheckBox check = row.Cells[row.Cells.Count - 1].Controls[0] as CheckBox;
    check.Enabled = true;
}

顺便提一下,请注意你的 asp:GridView 实际上是 自动生成的


谢谢!但是被添加的复选框都是禁用和未选中的。有什么方法可以启用并选中或取消选中吗? - xorpower

0
创建一个 TemplateField 用于带有复选框的列,并将复选框作为 footertemplate 添加到底部,通过 GridView.ShowFooter = true; 打开显示页脚;页脚是放置常用控件的好地方。
如果页脚不可用,则常用技巧是将一行空数据绑定到 UI,该行数据将具有复选框。
希望对你有所帮助。

2
我认为需求是将最后一列添加为复选框,而不是页脚行。 - suryakiran
Brian,但我们没有为每个GridViewRow设置页脚行:)。解决此问题的唯一方法是将另一列附加到布尔类型的数据集中,以保证复选框。 - naveen
哦,我现在明白了,我真的很迟钝。我没有看到列部分。 - Brian Mains

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接