Asp: ¿RadioButtonList sigue publicando en el servidor incluso cuando falla la validación del cliente?

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

Pregunta

Esta consulta está relacionada con esta que pregunté ayer. Tengo una lista de botones de radio en mi página asp.net definida de la siguiente manera:

<asp:RadioButtonList ID="rdlSortBy" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" AutoPostBack="True" >
       <asp:ListItem Selected="True">Name</asp:ListItem>
        <asp:ListItem>Staff No</asp:ListItem>
</asp:RadioButtonList>

En el lado del cliente, estoy haciendo las siguientes validaciones:

rdlSortBy.Attributes("onclick") = "javascript:return prepareSave() && prepareSearch();"

El problema es que la validación de Javascript se ejecuta como se esperaba. Se muestra un mensaje y espero permanecer en la página hasta que el usuario haya guardado los cambios, en su lugar, la página se vuelve a publicar y efectivamente estoy perdiendo los cambios no guardados.

¿Qué podría estar yendo mal?

¿Fue útil?

Solución

Solucioné esto, el problema era que estaba adjuntando el " onclick " de RadioButtonList en lugar de los botones de radio individuales.

Esta es la solución:

rdlSortBy.Items(0).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
    rdlSortBy.Items(1).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"

Otros consejos

El código OnClick que está utilizando para " validar " se está ejecutando y luego se está ejecutando el código que publica el formulario que el control mismo inyecta.

Debe interceptar ese proceso PostBack y detenerlo antes de que publique el formulario en el lado del cliente. La mejor manera de hacerlo sería con un CustomValidator y específicamente la " ClientValidationFunction " propiedad. Esto permitirá que su JavaScript indique que la devolución no debe ocurrir debido a un error de validación.

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