ASP.. NET复选框中的DataTable
本文关键字:DataTable 复选框 NET ASP | 更新日期: 2023-09-27 18:18:56
我在数据表中添加了一个复选框
初始化 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' to type*"System.Web.UI.WebControls.CheckBox"。*
我的方法错了吗?是否有人建议如何将datacoluml转换回复选框?
为什么要在数据表中添加复选框?如果您想要存储一些值,这些值将用于填充CheckBox,那么建议您将值存储为Bool。
即使你想将checkBox存储在dataccolumn中,你也必须这样做
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);
由于column将存储引用类型,因此首先必须创建它的实例,设置其值,然后将其存储在DataColumn中。
如果你只是使用onecollumdatatable。我建议你使用更有意义的List<CheckBox>
。
List<CheckBox> checkBoxList = new List<CheckBox>();
CheckBox ck = new CheckBox();
ck.Checked = true;
checkBoxList.Add(ck);
dataccolumn中的值是什么?听起来像是一个NULL值?无论如何,您不能将数据列强制转换为复选框。
默认情况下,复选框总是为false,所以您不需要这样做。