Pregunta

Estoy tratando de vincular simplemente un botón de opción de entrada HTML dentro de un repetidor:

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

El método GetSelectedValue simplemente devuelve una cadena '' marcada '' para que se seleccione el botón de radio, digamos que el repetidor tenía 3 elementos para hacer un bucle y cuando aparece el marcado y, si inspecciono el elemento, veo el valor correcto para el primer botón de radio, es decir, marcado = " verificado " pero en la interfaz de usuario, se selecciona el tercer botón de radio a pesar de que su valor marcado = `` falso '', ¿alguien puede guiarme sobre lo que estoy haciendo mal?

¿Fue útil?

Solución

Pruébalo

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

Básicamente, la inclusión en el atributo marcado está causando que se verifique el RadioButton . Desea extraerlo para que todo se procese o todo esté ausente.

También tenga en cuenta que todos sus RadioButtons se llamarán Test1 Puede ser una buena idea utilizar un RadioButton del lado del servidor.

Otros consejos

El atributo CHECKED en HTML no tiene ningún valor asociado. Solo debe usar este atributo si desea seleccionarlo.

Quieres algo como:

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

De lo contrario, simplemente podría usar los controles de ENTRADA ASP.NET.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top