Кнопка-переключатель HTML внутри ретранслятора ASP.NET C # - PullRequest
2 голосов
/ 30 ноября 2009

Я пытаюсь просто привязать радиокнопку ввода 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 элемента для цикла, и когда разметка отображается, и если я проверяю элемент, я вижу правильное значение для первого радио button ie флажок = "флажок", но в пользовательском интерфейсе выбирается 3-й переключатель, хотя его значение флажка = "ложь", может кто-нибудь подсказать мне, что я делаю неправильно?

Ответы [ 2 ]

4 голосов
/ 30 ноября 2009

Дайте этому попытку

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

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

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

0 голосов
/ 30 ноября 2009

Атрибут 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.

...