lunes, 26 de diciembre de 2016

Usando el control de validación CompareValidator ASP .NET - parte II

Como un complemento al primer ejercicio del control ASP .NET CompareValidator, aqui presento un segundo ejemplo que muestra como utilizar el control CompareValidator para comparar el valor de un control ASP.NET con un tipo específico de dato .NET (Currency, Date, Double, Integer, String) o bien comparar si teniendo dos valores: uno es menor o mayor al otro o si ambos valores son iguales.

Este segundo ejemplo consta de dos archivos: CompareValidatorSample2.aspx y CompareValidatorApp2.aspx.cs

El código fuente del archivo CompareValidatorSample2.aspx

<%@ Page
 Language           = "C#"
 AutoEventWireup    = "false"
 Inherits           = "Samples.ASP.CompareValidatorApp2"
 ValidateRequest    = "false"
 EnableSessionState = "false"
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>ASP.NET Compare validator sample 2</title>  
 </head>
 <body>
  <form id="Form1" method="post" runat="server">
  <p></p>
    <table>
    <tr>
        <td>Decimal average</td>
        <td><asp:TextBox ID="txtAverage" runat="server">
        </asp:TextBox></td>
        <td><asp:CompareValidator ID="cmpvtxtAverage" runat="server" 
        Type="Double" 
        ControlToValidate="txtAverage" 
        Operator="DataTypeCheck" 
        ErrorMessage="* must be decimal">
        </asp:CompareValidator>
        <asp:RequiredFieldValidator id="reqvtxtAverage" 
        Runat="Server" 
        ControlToValidate="txtAverage" 
        ErrorMessage="* required">
        </asp:RequiredFieldValidator></td>
    </tr>
    </table>
    <table>
    <tr>
    <td colspan="4">Type 2 integers,the second integer must be greater than first</td>
    </tr>
    <tr>
        <td>First integer</td>
        <td colspan="2">
   <asp:TextBox ID="txtValue1" 
         runat="server">
         </asp:TextBox>
  </td>
  <td>
         <asp:RequiredFieldValidator id="reqvtxtValue1" 
         Runat="server" 
         ControlToValidate="txtValue1" 
         ErrorMessage="* required">
         </asp:RequiredFieldValidator>
  </td>
 </tr>
 <tr>
        <td>Second integer</td>
        <td colspan="2">
   <asp:TextBox ID="txtValue2" 
         runat="server">
         </asp:TextBox>
  </td>
  <td>
        <asp:RequiredFieldValidator id="reqvtxtValue2" 
        Runat="server" 
        ControlToValidate="txtValue2" 
        ErrorMessage="* required">
        </asp:RequiredFieldValidator>
  </td>
    </tr>
    <tr>
        <td colspan="4">
        <asp:CompareValidator ID="cmpvTwoNumbers" 
        runat="server" 
        ControlToValidate="txtValue1" 
        ControlToCompare="txtValue2"
  Type="Integer"
        Operator="LessThan" 
        ErrorMessage="* first value greater than second">
        </asp:CompareValidator>
  </td>
    </tr>
    </table>
 <br>
    <asp:Button id="btnSubmit" 
    runat="server" 
    Text="Send"></asp:Button>
 <p><asp:Label id="lblMsg" 
 Runat="server">
 </asp:Label></p>
  </form>
 </body>
</html>

El código fuente del archivo CompareValidatorApp2.aspx.cs


Fig 4 El ejemplo muestra la comparación de un valor contra un tipo específico de dato y la comparación del valor de un control contra el valor de otro control.


Fig 5 Comparando el valor de un control con un tipo específico de dato .NET.


Fig 6 Comparando el valor de un control contra el valor de otro control.


Algunas propiedades esenciales del control CompareValidator.

  • ControltoValidate: El control de donde obtendremos el valor a comparar
  • ControlToCompare: El control con el cual se compara el valor obtenido de la propiedad ControltoValidate
  • Display: Esta propiedad tiene 3 valores:
    1. Static: es la propiedad predeterminada, reserva un espacio suficiente en la página para mostrar el mensaje de error.
    2. Dynamic: el espacio para mostrar el mensaje no se reserva, cuando el mensaje se despliega se desplaza el contenido existente en la página.
    3. None: el mensaje no será desplegado en el lugar del control sino en el control ValidatorSummary si se localiza en la misma página.
  • Errormessage: el texto del mensaje que se desplegará si no se cumplen las condiciones.
  • Operator: La operación que efectuará el control en los valores de los campos, los valores son los siguientes:
    1. LessThan:El valor del ControlToValidate debe ser menor al valor del ControlToCompare.
    2. Equal: El valor del ControlToValidate debe ser igual al valor del ControlToCompare.
    3. NotEqual: El valor del ControlToValidate no debe ser igual al valor del ControlToCompare.
    4. LessThanEqual: El valor del ControlToValidate debe ser menor o igual al valor del ControlToCompare.
    5. GreaterThan: El valor del ControlToValidate debe ser mayor al valor del ControlToCompare.
    6. GreaterThanEqual: El valor del ControlToValidate debe ser mayor o igual al valor del ControlToCompare.
  • Type: El tipo de datos de los valores a comparar, los tipos de datos disponibles para este control son:
    1. Currency: Moneda
    2. Date: Fecha
    3. Double: Valor de punto flotante
    4. Integer: Entero sin punto decimal
    5. String: Cadena

Descargar el código fuente del ejemplo (Download the source code)