<% = html.checkbox ("Имя", логическое)%> флажок не установлен - PullRequest
0 голосов
/ 02 октября 2009

Почему флажок не отмечен этим кодом?

<td><%=Html.CheckBox("ItemIsActive", item.ItemIsActive)%></td>

Item.ItemIsActive имеет тип boolean и установлен на true?

Когда я делаю это, на экране отображается «true»

<td><%=item.ItemIsActive%></td>

Ответы [ 4 ]

1 голос
/ 09 октября 2010

У меня была такая же проблема (при использовании ASP.NET MVC).

На самом деле у меня была форма с двумя флажками, один из которых имеет логическое значение null, а другой не обнуляется.

В случае ненулевого значения флажок был установлен, когда значение из базы данных было истинным. В случае обнуляемого я не мог проверить это, используя Html.CheckBox.

Я решил это путем преобразования значения из модели в ненулевое логическое значение.

<td><%=Html.CheckBox("ItemIsActive", item.ItemIsActive == null ? 
  false : 
  (bool)item.ItemIsActive) %></td>
1 голос
/ 22 октября 2009

У меня была такая же проблема, пока я не изменил свое логическое поле на необнуляемое поле. Убедитесь, что ваше поле Item.IsActive объявлено как:

bool ItemIsActive {..}

вместо

bool? ItemIsActive {..}

Если вы используете Linq2Sql, убедитесь, что ItemIsActive не обнуляется в вашей таблице.

0 голосов
/ 02 октября 2009

Если у вас есть элемент данных представления с именем ItemIsActive, или если ваше представление связано с конкретной моделью, у которой есть свойство, которое называется таковым, оно будет использоваться с указанным вами.

Чтобы увидеть, может ли это быть, попробуйте изменить это на:

<td><%=Html.CheckBox("ItemIsActive_test", item.ItemIsActive)%></td>

Если это сработает, я бы поставил что-то в viewdata или в модели, которая перезаписывает какой элемент. ЭлементIsActive содержит

0 голосов
/ 02 октября 2009

Я играл с этим около 30 минут и попробовал следующее:

1) Установите флажок и установите значение true 2) Создайте переменную, установите в true и используйте ее в качестве флажка 3) Создайте два флажка с одним и тем же идентификатором, установив один для false, другой для true

Все вышеперечисленное работает нормально, поэтому единственное, о чем я могу подумать, это то, что у вас могут быть некоторые флажки установки css или javascript обратно в false Это легко сделать, если вы используете jQuery.

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

Как я уже сказал, я буду проверять свой CSS и любой Javascript / jQuery на странице, частичные элементы управления, мастер и т. Д.

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