Frage

Ich versuche, einfach ein HTML-Eingabeoptionsfeld innerhalb eines Repeater zu binden:

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

Die GetSelectedValue Methode gibt einfach eine Zeichenfolge „geprüft“ für das Optionsfeld ausgewählt werden, können sagen, der Repeater 3 Elemente Schleife hatte und wenn das Markup macht und wenn ich das Element inspizieren sehe ich den richtigen Wert für den ersten Funk Taste dh checked = „checked“ aber auf der Benutzeroberfläche der dritten Radiobutton wird, obwohl sein geprüft value = „false“ ausgewählt, kann mir jemand führen, was ich falsch mache?

War es hilfreich?

Lösung

Geben Sie diesem einen Versuch

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

Grundsätzlich ist die Aufnahme in dem checked Attribute verursacht das RadioButton zu prüfen. Sie wollen es herausziehen, so dass die ganze Sache gemacht wird oder die ganze Sache ist nicht gefunden.

Beachten Sie auch, alle Ihre RadioButtons genannt werden Test1 werden Es könnte eine gute Idee sein, eine Server-Seite RadioButton zu verwenden.

Andere Tipps

Das Attribut checked in HTML hat keinen Wert mit ihr verbunden ist. Sie sollten dieses Attribut nur verwenden, wenn Sie es auswählen möchten.

Sie wollen so etwas wie:

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

Sonst könnte man einfach den ASP.NET INPUT-Steuerelemente verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top