GridView中的CheckBoxField不会绑定到数据库中的字符串字段

时间:2008-12-04 19:47:08

标签: c# asp.net gridview ado.net

如何将GridView中的CheckBoxField绑定到作为字符串的基础数据库字段。字符串是“1”或“0”,但GridView不会自愿绑定它。我该怎么办。在GridView中使用复选框并让它在数据库(或基础数据源)中获取和设置字符串的最佳方法是什么。

3 个答案:

答案 0 :(得分:6)

这应该有效:

Checked='<%# DataBinder.Eval(Container.DataItem, "MyStringField") = "1" %>'

通常,复选框值将映射到数据库中的位值,因此您不会遇到此问题。

答案 1 :(得分:1)

CheckBoxField绑定到布尔值。 您可以将字符串转换为绑定表达式中的布尔值,也可以将其转换为db return。

数据库将复选框状态存储为位而不是字符串更有意义。那么这个问题就会完全消失。

当然,如果您需要存储第三个“灰色”状态,这会使问题稍微复杂化,但您仍然可以将状态存储为int。

答案 2 :(得分:1)

我在VB工作,我尝试了类似的东西

<asp:checkbox runat="server" id="chkCastCool" enabled="false" 
     checked='<%CType(DataBinder.Eval(Container.DataItem,"Cast_Cool").ToString().Replace("Y","True").Replace("N","False"),Boolean)%>'/>
相关问题