Что не работает флажок значение = '1' в этом случае? - PullRequest
2 голосов
/ 27 февраля 2009

Я читал о stackoverflow о флажках и устанавливал их значение в 1, чтобы сделать их проверенными, но, похоже, это не работает в моем случае. У меня есть выражение eval для базы данных, которое оценивается в 1, когда мой флажок должен быть отмечен, и я убедился, что на сгенерированной странице есть хотя бы один флажок ввода со значением = 1, который не отображается как отмеченный.

Чего мне не хватает? Я попытался просто установить свойство selected, но даже check = '' считается проверенным, так что я никак не мог убедиться, что это работает как для флажков check, так и для checkless.

Вот HTML, который не работает.

<input type='checkbox' class="datacell" id='603' 
style='text-align: center' value='1' />

Вот базы данных, которые я установил в своем репитере для основных элементов ввода

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
value='<%# Eval("TestResult") %>' />

Другие уловки просто удостоверяются, что правые ячейки являются флажками, и что выравнивание ячеек работает определенным образом (флажки выровнены по центру, числовые элементы выровнены по правому краю и другие элементы по левому краю.)

Редактировать: Так как же это сделать с помощью выражения привязки данных, это моя дилемма.

Ответы [ 7 ]

11 голосов
/ 27 февраля 2009

Правильный способ установить флажок как отмеченный:

<input type="checkbox" class="datacell" id="603"
style="text-align: center" checked="checked" />

и правильный способ визуализации непроверенного флажка (обратите внимание, что весь атрибут checked отсутствует):

<input type="checkbox" class="datacell" id="603"
style="text-align: center"/>
9 голосов
/ 27 февраля 2009

Согласно спецификации W3C :

Флажки (и переключатели) переключатели, которые могут быть переключены Пользователь. Переключатель "включен", когда проверенный атрибут элемента управления установлен.

Таким образом, установка любое значение для атрибута флажка будет проверять флажок.

  • проверено = "проверено"
  • проверено = "ложь"
  • проверено = "истинный
  • проверено

будет все помечать флажок как отмеченный. Вам необходимо полностью удалить атрибут, чтобы снять флажок.

Итак, возможное решение для вас будет:

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
<%# isChecked((int)Eval("TestResult")) %> />

Код-за

protected string isChecked(int testResult) {
  if (testResult == 1) {
    return "checked='checked'";
  } else {
    return "";
  }
}
1 голос
/ 27 февраля 2009

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

1 голос
/ 27 февраля 2009

Все довольно просто:

<input type="checkbox" value="whatever" checked> Create a checked box
<input type="checkbox" value="whatever"> Creates an unchecked box
0 голосов
/ 27 февраля 2009

Вот что я сделал:

0 голосов
/ 27 февраля 2009

вы не присвоили флажку атрибут имени!

0 голосов
/ 27 февраля 2009

Флажки отмечены с помощью атрибута checked="checked"

Пример:

<p>Please select every sport that you play.</p>
Soccer: <input type="checkbox" checked="checked"
 name="sports" value="soccer" />
<br />
Football: <input type="checkbox" 
name="sports" value="football" />
<br />
Baseball: <input type="checkbox" 
name="sports" value="baseball" />
<br />
Basketball: <input type="checkbox" checked="checked" 
name="sports" value="basketball" />
</p>

http://www.tizag.com/htmlT/htmlcheckboxes.php

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