我在我的数据表中添加了一个复选框
初始化
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转回到CheckBox吗?
答案 0 :(得分:1)
为什么要在数据表中添加复选框? 如果要存储一些值(用于填充CheckBox),则建议您将值存储为Bool。
即使你想将checkBox存储在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中。
如果您只是使用OneColumn DataTable。我建议你使用更有意义的List<CheckBox>
。
List<CheckBox> checkBoxList = new List<CheckBox>();
CheckBox ck = new CheckBox();
ck.Checked = true;
checkBoxList.Add(ck);
答案 1 :(得分:0)
DataColumn中有什么价值?听起来像是NULL值?无论如何,你不能将数据存储到复选框 默认情况下,复选框始终为false,因此您不需要。