C# DataTable中的ASP.NET复选框

C# DataTable中的ASP.NET复选框,c#,asp.net,checkbox,datatable,datacolumn,C#,Asp.net,Checkbox,Datatable,Datacolumn,我在数据表中添加了一个复选框 初始化 DataTable dt = new DataTable(); DataRow dr = null; 添加复选框 dt.Columns.Add(new DataColumn("CheckBoxCol", typeof(CheckBox))); 添加这一新行 dr = dt.NewRow(); 当我尝试初始化新行复选框的初始状态时出现问题 ((CheckBox)dr["CheckBoxCol"]).Checked = false; 抛出的异常表示:

我在数据表中添加了一个复选框

初始化

 DataTable dt = new DataTable();
 DataRow dr = null;
添加复选框

dt.Columns.Add(new DataColumn("CheckBoxCol", typeof(CheckBox)));
添加这一新行

dr = dt.NewRow();
当我尝试初始化新行复选框的初始状态时出现问题

((CheckBox)dr["CheckBoxCol"]).Checked = false;
抛出的异常表示:

无法将“System.DBNull”类型的对象强制转换为 *'System.Web.UI.WebControls.CheckBox'*


我的方法错了吗?有人能建议如何将DataColumn还原为复选框吗?

DataColumn中的值是什么?听起来像是空值?无论如何,您不能将数据列强制转换为复选框。

默认情况下,复选框始终为false,因此您不需要该复选框。

数据列中的值是什么?听起来像是空值?无论如何,您不能将数据列强制转换为复选框。

默认情况下,复选框始终为false,因此您不需要它。

为什么要将复选框添加到数据表中? 如果您想存储一些用于填充复选框的值,那么建议您将值存储为Bool

即使您想将复选框存储在datacolumn中,也必须这样做

 DataTable dt = new DataTable();
 dt.Columns.Add(new DataColumn("Check", typeof(System.Web.UI.WebControls.CheckBox)));
 DataRow dr = dt.NewRow();
 CheckBox ck = new CheckBox();
 ck.Checked = true;
 dr["Check"] = ck;
 dt.Rows.Add(dr);
因为列将存储引用类型,所以首先必须创建它的实例,设置其值,然后将其存储在DataColumn中

如果您只是使用一列数据表。我建议您使用更有意义的
列表

 List<CheckBox> checkBoxList = new List<CheckBox>();
        CheckBox ck = new CheckBox();
        ck.Checked = true;
        checkBoxList.Add(ck);
List checkBoxList=new List();
复选框ck=新复选框();
ck.Checked=true;
复选框列表。添加(ck);

为什么要在数据表中添加复选框? 如果您想存储一些用于填充复选框的值,那么建议您将值存储为Bool

即使您想将复选框存储在datacolumn中,也必须这样做

 DataTable dt = new DataTable();
 dt.Columns.Add(new DataColumn("Check", typeof(System.Web.UI.WebControls.CheckBox)));
 DataRow dr = dt.NewRow();
 CheckBox ck = new CheckBox();
 ck.Checked = true;
 dr["Check"] = ck;
 dt.Rows.Add(dr);
因为列将存储引用类型,所以首先必须创建它的实例,设置其值,然后将其存储在DataColumn中

如果您只是使用一列数据表。我建议您使用更有意义的
列表

 List<CheckBox> checkBoxList = new List<CheckBox>();
        CheckBox ck = new CheckBox();
        ck.Checked = true;
        checkBoxList.Add(ck);
List checkBoxList=new List();
复选框ck=新复选框();
ck.Checked=true;
复选框列表。添加(ck);

我还需要强制转换来判断复选框.Checked是TRUE还是FALSE,而不仅仅是为了进行初始化。当我尝试时,同样的异常被抛出。是的,因为该值为空,所以我需要初始化该值…我还需要转换以确定复选框.Checked是否为真,而不仅仅是为了进行初始化。当我尝试时,同样的异常被抛出。是的,因为该值为空,所以我需要初始化该值……你能给我建议一些代码片段或解决方法吗?我已经在我的机器上运行了这段代码,工作正常。粘贴你的代码。你能给我推荐一些代码片段或解决方法吗?我已经在我的机器上运行了这段代码,并且运行得很好。粘贴你的代码。