Académique Documents
Professionnel Documents
Culture Documents
usuario ASP.NET
.NET Framework 4
Otras versiones
En este artculo vamos a ver cmo utilizar CustomValidator (lado del servidor y del lado del
cliente). En este ejemplo vamos a asegurar que la contrasea introducida por los usuarios no
puede ser inferior a 5 caracteres.
Artculo anterior de la serie:
1) RequiredFieldValidator
Ejemplo: http://www.codingfusion.com/Post/RequiredFieldValidator-Example-in-asp-net
2) RegularExpressionValidor
Ejemplo: http://www.codingfusion.com/Post/RegularExpressionValidator-Example-inasp-net
3) CompareValidator Ejemplo: http://www.codingfusion.com/Post/CompareValidatorExample-in-asp-net
4) RangeValidator Ejemplo: http://www.codingfusion.com/Post/RangeValidator-Examplein-asp-net
5) ValidationSummary Ejemplo: http://www.codingfusion.com/Post/ValidationSummaryExample-in-asp-net
Paso 1: Crear cuadro de texto y establecer las propiedades CustomValidator
ControlToValidate y ErrorMessage de CustomValidator.
Paso 2: Crear la funcin Javascript para comprobar la longitud de la contrasea.
Paso 3: Uso ClientValidationFunction caracterstica de CustomValidator e introduzca el
nombre de la funcin de JavaScript que aqu estoy usando la funcin validateLength.
Funcin javascript:
1
2
3
4
5
6
7
8
9
<script type="text/ecmascript">
function validateLength(sender, args) {
debugger;
if (args.Value.length < 5)
return args.IsValid = false;
else
return args.IsValid = true;
}
</script>
1 <table>
<tbody><tr>
2
<td>
3
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipo
4 (Server side)</span> <b>Contrasea</b> (lado del servidor)</span>
</td>
5
<td>
6
<asp:textbox runat="server" id="txtPassword2">
7
<br>
8
<asp:customvalidator id="CustomValidator1" forecolor="Red" onserverval
9 characters." controltovalidate="txtPassword2" runat="server">
</asp:customvalidator></asp:textbox></td>
1
</tr>
0
<tr>
11
<td>
1
2
</td>
<td>
1
<asp:button text="Validate" id="Button1" runat="server">
3
</asp:button></td>
1
</tr>
4
</tbody></table>
1
5
1
6
1
7
1
8
1
9
2
0
Funcin javascript:
<asp:RegularExpressionValidator runat="server"
ValidationExpression="^[a-zA-Z]$" ControlToValidate="idOfYourTextBox"
ErrorMessage="Only letters are allowed, no digits!" />
^[a-zA-Z0-9]+$
^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$
^\d*(\.|,|(\.\d{1,2})|(,\d{1,2}))?$
Validacin Cliente
Una vez definido nuestro esquema inicial, el siguiente paso ser escribir la funcin de
validacin del lado del cliente para lo cual ser necesario cambiar a la vista de HTML.
La funcin de validacin puede estar en cualquier lenguaje scripting (VbScript,
JavaScript, JSScript) para este ejemplo el lenguaje ser JavaScript, pero sea cual sea
el lenguaje seleccionado la funcin que realizara la validacin debe contener la
siguiente estructura.
FuncionQueValida(source, arguments) , en donde el parmetro source representa
el objeto que origino la validacin, arguments contiene la funcionalidad mediante la
cual indicaremos el estado de la validacin (Valida o No Valida)
La funcin que crearemos tendr como finalidad asegurarse que introduzcan una
secuencia valida de nmeros incremental en 2 posiciones.
Secuencia Valida : 1,3,5,7,9
Secuencia No Valida : 1,3,4,5,6
Cdigo Script.
return;
}
}
arguments.IsValid=true;
validacin fue exitosa
}
Validacin Servidor
La validacin en el servidor debe contener la misma funcionalidad que contemplamos
dentro de la validacin del lado del cliente, la diferencia por supuesto, ser que sta ya
no ser en cdigo script, dicha validacin la realizaremos dependiendo del lenguaje en
el que estemos desarrollando nuestra aplicacin.
Lo que haremos ser escribir cdigo para el evento ServerValidate de nuestro control
CustomValidator1, la estructura de la funcin es similar a la descrita para la funcin
cliente, recibe dos parametros sender y args.
Cdigo en C#
private void CustomValidator1_ServerValidate(object source,
System.Web.UI.WebControls.ServerValidateEventArgs args)
{
//Obtiene valor inicial
try
{
//Intenta hacer la conversin a int para comprobar que sera un
valor numerico
Valor = Int32.Parse(TextBox1.Text);
}
catch
{
args.IsValid = false;
return;