Как установить проверенное значение для тега радиовхода, используя ASP.Net? - PullRequest
4 голосов
/ 11 марта 2009

У меня есть радио-тег:

<input name="phoneRadio" class="phoneRadio" id="rbDefaultPhone" 
    type="radio" checked="<%# GetIsChecked(Eval("IsDefault")) %>"/>

в повторителе и GetIsChecked - это функция c #, которая возвращает значение bool, моя проблема в том, что она не влияет на проверенное значение переключателя в правильном направлении, Кто-нибудь знает, как это исправить?

Ответы [ 2 ]

8 голосов
/ 11 марта 2009

Достаточно иметь атрибут checked на input, чтобы проверить его. В HTML вам просто нужно иметь checked, в XHTML - checked="checked", но в любом случае вы захотите исключить весь атрибут, если он не отмечен.

То есть GetIsChecked должен (быть переименован и) возвращать либо "checked='checked'", либо String.Empty. Затем вы будете вызывать его только в самом теге ввода, а не в качестве значения атрибута checked (который вы должны удалить). Это будет выглядеть примерно так:

<input name="phoneRadio" class="phoneRadio" id="rbDefaultPhone" type="radio" <%# GetChecked(Eval("IsDefault"))%> />

protected string GetChecked(object isDefault)
{
    return (bool)isDefault ? "checked='checked'" : string.Empty;
}
0 голосов
/ 23 марта 2016

Bdukes ответ правильный. Прежде чем перейти к этому посту, я потратил много времени, пытаясь выяснить, как вернуть checked=checked, но

checked
checked=""
checked="checked"

эквивалентны.

Учитывая, что IsDefault возвращает bool, он хорошо работает во всех современных браузерах.

<input name="phoneRadio" class="phoneRadio" id="rbDefaultPhone"  type="radio" 
 checked='<%#Eval("IsDefault")%>'

Проверьте это для более подробного объяснения.

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