是否可以从DetailsView中的CheckboxField中提取Checked状态?

本文关键字:提取 Checked 状态 CheckboxField 中的 DetailsView 是否 | 更新日期: 2023-09-27 18:16:24

最初我有一个带有复选框的TemplateField,但是我不能使用

设置复选框的值
Checked='<%# (bool)Bind("FieldName")  %>

Checked='<%# (bool)Eval("FieldName")  %>

一直抛出无效强制转换异常。数据库中的字段是位字段,设置为1或0。

我尝试切换到一个复选框字段,但因为我的更新代码是在代码后面,而不是使用数据源中的updatcommand参数,我似乎无法从CheckBoxField检索值传递给我的业务逻辑。

有谁能告诉我如何在detailsview中检索CheckBoxfield的值?

是否可以从DetailsView中的CheckboxField中提取Checked状态?

不能从int型强制转换为bool型。尝试Convert.ToBoolean(Eval("FieldName"))不确定是否可以这样使用Eval,但这是一般的想法。

我认为您需要使用ToString()从数据库的值,因为HTML正在寻找True或False,而不是1或0。

CheckBox ckBox = ucDetailView.FindControl("CheckBoxID") as CheckBox
if(ckBox != null){
   ckBox.Checked = (bool)datasource["FieldName"].ToString()
   //.. or some better casting code with more null checks
}

然后在后面的代码中设置它。解决方案似乎在这里工作