none
Problema con control ValidationSummary en webform Editar Perfil RRS feed

  • Pregunta

  • Hola que tal. Tengo un problema con un control Validation Summary. Primeramente: tengo un webform en el cual los usuarios se registran mediante un control login, una vez que el usuario se registra introduciendo sus datos correctamente se le redirige a un webform en donde llenara tres cajas de texto para completar su perfil:


    lo anterior lo realizo con el siguiente código:

    <table border="0" style="width: 845px">
    	<tr class="largofila">
            	<td>
                    	<asp:Label ID="GenderLabel" runat="server" AssociatedControlID="Gender">I´m a</asp:Label>
                	</td>                            
                	<td>
                    	<asp:DropDownList ID="Gender" runat="server" Width="200px" Height="25px" CssClass="ControlesSignUp">                                                                
                        		<asp:ListItem>Man</asp:ListItem>
                        		<asp:ListItem>Woman</asp:ListItem>
    	                </asp:DropDownList>                                         
                    	<asp:RequiredFieldValidator ID="GenderRequired" runat="server" ControlToValidate="Gender" 
                    		ErrorMessage="Gender is required" 
                    		ForeColor="Red" Display="Dynamic">*</asp:RequiredFieldValidator>
                	</td>
                    <td>
                    	<asp:Label ID="CountryLabel" runat="server" AssociatedControlID="Country">Country</asp:Label>
                    </td>
                    <td>
                    	<asp:DropDownList ID="Country" runat="server" Width="220px" Height="25px" CssClass="ControlesSignUp">
                            	<asp:ListItem Selected="True">- Select your country -</asp:ListItem>
    	                        <asp:ListItem>Afghanistan</asp:ListItem>
                            </asp:DropDownList>
                            <asp:RequiredFieldValidator ID="CountryRequired" runat="server" ControlToValidate="Country" 
                            	ErrorMessage="Country is required" ValidationGroup="CompleteProfile1" 
                                    ForeColor="Red" Display="Dynamic" InitialValue="- Select your country -">*</asp:RequiredFieldValidator>
                    </td>
            </tr>  
            <tr class="largofila">
            	<td>
                    	<asp:Label ID="CityLabel" runat="server" AssociatedControlID="City">City</asp:Label>   
                    </td>
                    <td>
                    	<asp:TextBox ID="City" runat="server" Width="200px" Height="18px" CssClass="ControlesSignUp"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="CityRequired" runat="server" ControlToValidate="City" 
                            	ErrorMessage="Enter your city" ValidationGroup="CreateUserWizard1" ForeColor="Red">*</asp:RequiredFieldValidator>
                            <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" 
                            	ErrorMessage="City must contain 5 to 20 characters" ValidationExpression="^([\S\s]{5,20})$" 
                                    ControlToValidate="City" ValidationGroup="CreateUserWizard1" ForeColor="Red">*</asp:RegularExpressionValidator>
                    </td>
                    <td>
                    	<asp:Label ID="BirthdayLabel" runat="server" AssociatedControlID="Birthday">Date of Birth</asp:Label>
                    </td>
                    <td>
                    	<asp:TextBox ID="Birthday" runat="server" Width="200px" Height="18px" CssClass="ControlesSignUp"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="BirthdayRequired" runat="server" ControlToValidate="Birthday" 
                            	ErrorMessage="Enter your Date of Birth" ValidationGroup="CreateUserWizard1" ForeColor="Red">*</asp:RequiredFieldValidator>
                            <asp:CompareValidator ID="DateFormat" runat="server" Display="Dynamic" ErrorMessage="Enter a valid date" 
                            	ControlToValidate="Birthday" Operator="DataTypeCheck" Type="Date"></asp:CompareValidator>
                    </td>
            </tr>  
    	<tr>
            	<td>
                    	<asp:Button ID="SaveButton" runat="server" Text="Save Profile" 
                            	onclick="SaveButton_Click" />
                    </td>
    	</tr>
    	<tr>
    		<td>
            		<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
    		<td>
            </tr>                                                                                   
    </table>

    El problema aquí es que al llenar los campos y dar clic en guardar cambios, no aparecen los datos correspondientes al control ValidationSummary, en el caso de que el usuario no introduzca los datos que se le piden.

    En otras palabras, al dar clic en el botón guardar perfil, los datos que introduce el usuario se guardan, no importando si introdujo algo distinto a lo que se esta pidiendo en los controles RequiredFieldValidator.

    Tengo otro control ValidationSummary para el registro (login) de usuarios y éste funciona perfectamente. 

    No sé que es lo que sucede.

    Gracias de antemano por su ayuda.

    jueves, 7 de junio de 2012 7:08

Todas las respuestas

  • Debes colocar en el boton la opciones CausesValidation="true". Adicionalemente, yo recomendaria que en los validadores y en el boton agregaras la propiedad ValidationGroup. Esta se le debe asignar el mismo valor
    martes, 30 de abril de 2013 15:01