Freigeben über


Beispiel für ein Bestätigungssteuerelement für erforderliche Felder

Das hier beschriebene Bestätigungssteuerelement für erforderliche Felder erweitert das unter Beispiel für ein grundlegendes Bestätigungssteuerelement beschriebene grundlegende Bestätigungssteuerelement. Diese Bestätigung fügt die folgende Funktionalität zur Basisklasse hinzu:

  • Sie legt eine Eigenschaft mit der Bezeichnung InitialValue offen, die es dem Seitenentwickler ermöglicht, einen Anfangswert für das erforderliche Feld festzulegen.
  • Sie setzt die EvaluateIsValid-Methode außer Kraft (in BaseDomValidator als abstrakte Methode definiert), um eine Logik bereitzustellen, die bestimmt, ob das erforderliche Feld geändert wurde, wenn der Benutzer zu einem anderen Feld wechselt.
  • Sie setzt AddAttributesToRender außer Kraft (geerbt von WebControl), um einen clientseitigen Handler für die Auswertungslogik bereitzustellen. Der clientseitige Handler ist eine in der Skriptbibliothek definierte Funktion.

Eine Anleitung zum Kompilieren und Erstellen dieses Beispiels finden Sie unter Beispiele für Bestätigungssteuerelemente. Eine Übersicht über die clientseitige Skripterstellung in Serversteuerelementen finden Sie unter Clientfunktionalität in einem Serversteuerelement.

// 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

Siehe auch

Beispiele für Bestätigungssteuerelemente | Beispiel für ein grundlegendes Bestätigungssteuerelement | Beispiel für ein Bestätigungssteuerelement für reguläre Ausdrücke | Skriptbibliothek für Gültigkeitsprüfungsbeispiele | Konfigurationsdatei für Bestätigungsbeispiele | Testseite für Gültigkeitsprüfungsbeispiele | Entwickeln eines Bestätigungssteuerelements