我使用的是.NET Windows Forms DataGridView,我需要编辑一个DataBound列(它绑定在一个布尔DataTable列上)。为此我指定了这样的单元格模板:
DataGridViewColumn column = new DataGridViewColumn(new DataGridViewCheckBoxCell());
你看我需要一个CheckBox单元格模板。
我面临的问题是此列始终是只读/禁用的,就好像它是TextBox类型一样。它根本不显示复选框。
有关如何使用DataGridView的可编辑复选框列的任何想法吗?
更新:对于Windows表单,请。
感谢。
答案 0 :(得分:6)
好了,经过4个多小时的调试,我发现DataGridView行的高度太小,无法绘制复选框,因此根本没有显示。我在意外行高调大后发现了这一点。
作为解决方案,您可以将AutoSizeRowsMode设置为AllCells。
richDataGrid.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
答案 1 :(得分:1)
不要尝试在代码中创建列,而是单击DataGridView控件右上角框中的小箭头,然后从出现的菜单中选择“编辑列...”。在对话框中,单击“添加”按钮,然后选择“数据绑定列”选项并选择要绑定的布尔列。
答案 2 :(得分:0)
创建一个TemplateField并将id绑定到它,如下所示:
<asp:TemplateField HeaderText="Whatever" SortExpression="fieldname" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox runat="server" ID="rowCheck" key='<%# Eval("id") %>' />
</ItemTemplate>
</asp:TemplateField>