RequiredFieldValidator - Manejo de grupos de validación

Ahora tenemos otra situación, en el post anterior me referí a un formulario en el cual necesitaba que no se dispare la validación al dar clic sobre un linkbutton, sobre el mismo formulario ahora necesito que la validación se realice sobre un grupo especifico de cajas de texto dependiendo del bóton en el cual se da clic.



Para aclarar, en la página hay tres paneles, el panel1 que permite el ingreso de tres datos, el panel 2 que permite el ingreso de 2 datos y el panel 3 que muestra los datos de un consulta con un botón refrescar, todos con controles de validación.



El punto está en que cuando se da clic sobre el botón GUARDAR del panel 1 solo valide los datos de las cajas de texto de dicho panel y no valide los datos del panel 2, y cuando se da clic sobre el botón GUARDAR del panel 2 solo valide los datos de dicho panel y no los del panel 1, cuando se de clic sobre el linkbutton del Repeater no se disparen ninguna de las dos validaciones.



La solución está en utilizar la propiedad ValidationGroup para poder establecer que controles se validan al momento de dar clic sobre un botón (bueno y sobre todos aquellos controles que disparan el evento de la validación)



Para el Panel 1



<asp:TextBox ID="txtPanel1Campo1" runat="server" CssClass="Texto"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtPanel1Campo1" ErrorMessage="*" SetFocusOnError ="true" ValidationGroup="Grupo1" >
</asp:RequiredFieldValidator>



<asp:TextBox ID="txtPanel1Campo2" runat="server" CssClass="Texto"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtPanel1Campo1" ErrorMessage="*" SetFocusOnError ="true" ValidationGroup="Grupo1" >
</asp:RequiredFieldValidator>



<asp:Button ID="cmdGuardar1" runat="server" Text="Guardar Panel 1" ValidationGroup="Grupo1" />



Para el Panel 2



<asp:TextBox ID="txtPanel2Campo1" runat="server" CssClass="Texto"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtPanel1Campo1" ErrorMessage="*" SetFocusOnError ="true" ValidationGroup="Grupo2" >
</asp:RequiredFieldValidator>



<asp:Button ID="cmdGuardar2" runat="server" Text="Guardar Panel 2" ValidationGroup="Grupo2" />



Como podemos observar, los controles de validación se agrupan bajo la propiedad ValidationGroup y se lo asocia bajo la misma propiedad al botón que debe de ejecutar la validación al momento de dar clic.


2 comentarios:

Javier Camilo Triana dijo...

Muchas Gracias!! me sirvio mucho esta Informacion!!

Javier Camilo Triana dijo...

Muchas Gracias!! me sirvio mucho esta Informacion.