CheckBoxField в GridView не будет привязываться к строковому полю в базе данных - PullRequest
2 голосов
/ 04 декабря 2008

Как связать CheckBoxField в моем GridView с нижележащим полем базы данных, которое является строкой. Строка имеет значение «1» или «0», но GridView все равно не связывается с ней. Что я делаю. Каков наилучший способ иметь флажок в GridView и получить и установить строку в базе данных (или в базовом источнике данных).

Ответы [ 3 ]

6 голосов
/ 04 декабря 2008

Это должно работать:

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

Обычно значение флажка сопоставляется с битовым значением в вашей базе данных, поэтому вы не получите эту проблему.

1 голос
/ 08 сентября 2011

Я работал в 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)%>'/>
1 голос
/ 04 декабря 2008

CheckBoxField связывается с логическим значением. Вы можете либо преобразовать строку в логическое значение в выражении привязки, либо привести ее к возвращению в db.

Для базы данных было бы больше смысла хранить состояние флажка как бит, а не как строку. Тогда эта проблема полностью исчезнет.

Конечно, если вам нужно сохранить третье «серое» состояние, это немного усложняет ситуацию, но вы все равно можете сохранить состояние как int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...