Кнопка-переключатель HTML внутри ретранслятора ASP.NET C #

StackOverflow https://stackoverflow.com/questions/1820831

Вопрос

Я пытаюсь просто привязать радиокнопку ввода HTML внутри ретранслятора:

<asp:Repeater ID="Outlets" runat="server" >
 <ItemTemplate>
    <input type="radio" name="Proposal" value="Test1" id="Radio1" checked="
<%#`GetSelectedValue(DataBinder.Eval(Container.DataItem,"IsDefaultSelection"))%>" />`

    <label for="Test1">
              <%#DataBinder.Eval(Container.DataItem, "Label")%>
    </label>

  </ItemTemplate>
</asp:Repeater>

Метод GetSelectedValue просто возвращает строку " флажок " для выбора переключателя, допустим, что ретранслятор имеет 3 элемента для цикла, и когда визуализация разметки отображается, и если я проверяю элемент, я вижу правильное значение для первой переключателя, т.е. но в пользовательском интерфейсе выбирается 3-й переключатель, хотя его проверенное значение = " false " ;, может ли кто-нибудь подсказать мне, что я делаю неправильно?

Это было полезно?

Решение

Попробуйте это

<%# (bool)Eval("IsDefaultSelection") ? " checked=\"checked\" " : string.Empty %>

По сути, включение в атрибут checked вызывает проверку RadioButton . Вы хотите вытащить это так, чтобы вся вещь оказывалась или вся вещь отсутствовала.

Также имейте в виду, что все ваши RadioButton будут называться Test1 . Может быть, стоит использовать RadioButton на стороне сервера.

Другие советы

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

Вы хотите что-то вроде:

<asp:Repeater ID="Outlets" runat="server" >
 <ItemTemplate>
    <input type="radio" name="Proposal" value="Test1" id="Radio1" <%
    if (GetSelectedValue(DataBinder.Eval(Container.DataItem,"IsDefaultSelection"))
        response.write("CHECKED");
%> />
    <label for="Test1">
              <%#DataBinder.Eval(Container.DataItem, "Label")%>
    </label>

  </ItemTemplate>
</asp:Repeater>

В противном случае вы можете просто использовать элементы управления ASP.NET INPUT.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top