Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El control de validación de campo requerido descrito aquí extiende el control de validación base definido en Ejemplo de control de validación base. Este validador agrega a la clase base la funcionalidad siguiente:
- Expone una propiedad denominada
InitialValueque permite al programador de la página establecer un valor inicial para el campo requerido. - Reemplaza el método
EvaluateIsValid(definido como método abstracto enBaseDomValidator) para incluir la lógica que permite determinar si el valor del campo requerido ha cambiado cuando el usuario se desplaza a otro campo. - Reemplaza AddAttributesToRender (heredado de WebControl) para proporcionar un controlador de la lógica de evaluación en el cliente. El controlador en el cliente es una función definida en la biblioteca de secuencias de comandos.
Para compilar y generar este ejemplo, vea las instrucciones de Ejemplos de controles de validación. Para obtener información general acerca de las secuencias de comandos de cliente en los controles de servidor, vea Funcionalidad de un control de servidor en el cliente.
// RequiredDomValidator.cs.
namespace DomValidators {
using System.ComponentModel;
using System.Diagnostics;
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
[
ToolboxData("<{0}:RequiredDomValidator runat=server ErrorMessage=\"RequiredDomValidator\"></{0}:RequiredDomValidator>")
]
public class RequiredDomValidator : BaseDomValidator {
[
Bindable(true),
Category("Behavior"),
DefaultValue(""),
Description("Initial Value")
]
public string InitialValue {
get {
object o = ViewState["InitialValue"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["InitialValue"] = value;
}
}
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
writer.AddAttribute("evaluationfunction", "RequiredFieldValidatorEvaluateIsValid");
writer.AddAttribute("initialvalue", InitialValue);
}
}
protected override bool EvaluateIsValid() {
// Get the control value; return true if it is not found.
string controlValue = GetControlValidationValue(ControlToValidate);
if (controlValue == null) {
Debug.Fail("Should have been caught by PropertiesValid check.");
return true;
}
// See if the control has changed.
return(!controlValue.Trim().Equals(InitialValue.Trim()));
}
}
}
[Visual Basic]
' RequiredDomValidator.vb
Option Explicit
Option Strict
Imports System.ComponentModel
Imports System.Diagnostics
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace DomValidators
<ToolboxData("<{0}:RequiredDomValidator runat=server ErrorMessage=""RequiredDomValidator""></{0}:RequiredDomValidator>")> _
Public Class RequiredDomValidator
Inherits BaseDomValidator
<Bindable(True), _
Category("Behavior"), _
DefaultValue(""), _
Description("Initial Value")> _
Public Property InitialValue() As String
Get
Dim o As Object = ViewState("InitialValue")
If o Is Nothing Then
Return String.Empty
Else
Return CStr(o)
End If
End Get
Set
ViewState("InitialValue") = value
End Set
End Property
Protected Overrides Sub AddAttributesToRender(writer As HtmlTextWriter)
MyBase.AddAttributesToRender(writer)
If MyBase.RenderUplevel Then
writer.AddAttribute("evaluationfunction", "RequiredFieldValidatorEvaluateIsValid")
writer.AddAttribute("initialvalue", InitialValue)
End If
End Sub
Protected Overrides Function EvaluateIsValid() As Boolean
' Get the control value; return true if it is not found.
Dim controlValue As String = GetControlValidationValue(MyBase.ControlToValidate)
If controlValue Is Nothing Then
Debug.Fail("Should have been caught by PropertiesValid check.")
Return True
End If
' See if the control has changed.
Return Not controlValue.Trim().Equals(InitialValue.Trim())
End Function
End Class
End Namespace
Vea también
Ejemplos de controles de validación | Ejemplo de control de validación base | Ejemplo de control de validación de expresión regular | Biblioteca de secuencias de comandos para ejemplo de control de validación | Archivo de configuración para ejemplo de control de validación | Página de prueba para ejemplo de control de validación | Desarrollar un control validador