Debajo del control del Radio, coloqué un RangeValidator que (supuestamente) permitiría ingresos del 1 al 4 dentro de la Lista.
Esto funciona bárbaro si hacemos todo "como Dios manda", el problema está cuando por la URL (en el FORM uso el método GET, simplemente para probar) cambio el valor de la variable "radio" y le doy a ENTER. Me llevé una sorpresa cuando vi que el IsValid me dejó pasar el valor como si fuera válido, incluso si cambio su valor entero por una cadena también lo deja pasar .
Les adjunto el código:
Código:
En fin, quedé sorprendido.<script runat="server"> void Page_Load(Object Src, EventArgs E) { } void revisar(Object Src, EventArgs E) { if(Page.IsValid) { Response.Write("Valido. Radio: "+radio.SelectedValue); } else { Response.Write("Invalido"); } } </script> <html> <body> <form method="get" runat="server"> <asp:RadioButtonList runat="server" ID="radio"> <asp:ListItem Text="Item1" Value="1" /> <asp:ListItem Text="Item2" Value="2" /> <asp:ListItem Text="Item3" Value="3" /> <asp:ListItem Text="Item4" Value="4" /> </asp:RadioButtonList> <asp:RangeValidator ID="radioValida" ControlToValidate="radio" Type="Integer" MinimumValue="1" MaximumValue="4" Display="Dynamic" ErrorMessage="Error" /> <br /> <asp:Button runat="server" ID="boton" OnCommand="revisar" Text="Enviar" /> </form> </body> </html>
Se agradece de antemano cualquier ayuda.
Saludos.