Что в этом случае не работает при значении флажка = '1'?

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

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

Вот 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)

Решение

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

Флажки (и переключатели) - это переключатели включения / выключения, которые может переключать пользователь. Переключатель находится в положении «включено», когда установлен атрибут checked элемента управления.

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

  • checked = "проверено"
  • проверено = "ложь"
  • проверено = "верно
  • проверил

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

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

<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 "";
  }
}

Это довольно просто:

<input type="checkbox" value="whatever" checked> Create a checked box
<input type="checkbox" value="whatever"> Creates an unchecked box

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

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

<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"/>

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

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

Флажки устанавливаются с помощью 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