ASP.NET 4.8 GridView改用CheckBox后转换Boolean报错如何解决
问题原因
- 核心错误是你错误读取了
CheckBox控件的Text属性做布尔转换:CheckBox的Text是控件旁边显示的提示文本(比如"是否允许"这类自定义文案),本身不是布尔格式字符串,调用Convert.ToBoolean()必然抛出格式错误。 - 你要获取复选框的选中状态,应该直接读取
CheckBox自带的Checked属性,这个属性本身就是Boolean类型,不需要额外转换。 - 额外注意:你代码里第三个复选框的查找ID是
txtExcludedfooter,如果这个ID对应的控件还是之前的TextBox没有改成CheckBox,后续还会抛出类型转换异常,建议核对前端GridView模板里的控件ID是否和后端查找的匹配。
修复后的代码片段
把原来读取布尔值的三行替换成下面的写法即可:
Boolean FootPlate; myCheck = ((CheckBox)gvTestUsers.FooterRow.FindControl("CheckFootPlateFooter")); FootPlate = myCheck.Checked; Boolean WirstCord; myCheck = ((CheckBox)gvTestUsers.FooterRow.FindControl("CheckWirstCordFooter")); WirstCord = myCheck.Checked; Boolean Excluded; myCheck = ((CheckBox)gvTestUsers.FooterRow.FindControl("txtExcludedfooter")); // 若前端控件已从TextBox改为CheckBox,建议同步把ID改成CheckExcludedfooter更符合命名规范 Excluded = myCheck.Checked;
内容的提问来源于stack exchange,提问作者Måns Bodin
相关产品推荐
相关产品推荐

