TOC

This article is currently in the process of being translated into Spanish (~98% done).

Validación:

Validation - CustomValidator

Si ninguno de los otros validadores puede ayudarte, el CustomValidator normalmente puede hacerlo. Este validador no viene como una forma predefinida de trabajo; tú mismo escribes el código que hará la validación. Naturalmente esto es muy poderoso, ya que las posibilidades son básicamente infinitas. Una forma común de usar CustomValidator es cuando necesitas hacer una revisión en una Base de Datos (BdD) para ver si un valor es correcto. Como en este tutorial aún no se ha realizado un acceso a una BdD, realizaremos un ejemplo más simple, pero felizmente verás que se puede hacer casi cualquier cosa con el CustomValidator. El control te permite validar en ambos lados: en la parte del cliente y en la del servidor, es en este lado donde se demuestra la máxima potencia del control. Naturalmente, hacer una validación en la parte del servidor requiere un postback para la validación, pero en la mayoría de los casos, esto no es un problema.

En este ejemplo, simplemente chequearemos la longitud de una string en un TextBox. Aunque básico es un ejemplo muy útil, solamente muestra como se puede usar CustomValidator.

Custom text:<br />
<asp:TextBox runat="server" id="txtCustom" />
<asp:CustomValidator runat="server" id="cusCustom" controltovalidate="txtCustom" onservervalidate="cusCustom_ServerValidate" errormessage="The text must be exactly 8 characters long!" />
<br /><br />

Como puedes ver, es muy simple. La única propiedad desconocida es el evento onservervalidate. Se suele utilizar para referenciar al método del código subyacente en el cual se trata la validación. Cambie al fichero con el código subyacente y añada el siguiente método:

protected void cusCustom_ServerValidate(object sender, ServerValidateEventArgs e)
{
    if(e.Value.Length == 8)
        e.IsValid = true;
    else
        e.IsValid = false;
}

En este simple ejemplo, el validador básicamente trabaja poniendo la propiedad e.IsValid a verdadero o falso. Aquí chequeamos del e.Value, el cual es un string proveniente del control que está siendo validado, su longitud. Si esta es exactamente 8 caracteres, retornamos true, false en cualquier otro caso.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!