Frage

Hallo, ich versuche, den ForderungsFieldValidator zu erweitern, um eine neue Immobilie zu nehmen und auch Regularexpressionen zu validieren. Ich weiß, dass ich die Regularexpressionskontrolle verwenden kann, aber dann brauche ich 2 Steuerelemente, also möchte ich sie eliminieren, also muss ich nur zwei Steuerelemente verwenden. Es gibt auch andere Funktionen, die ich machen möchte, die mich einbeziehen, um es zu erweitern.

Mein Problem ist, dass ich nicht weiß, was ich überschreiben soll. oder überschreiben "und ich verstehe, dass evaluateIsValid () zur Validierung der Kontrolle nicht das ist, was in der Kontrolle steht.

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;

namespace ClassLibrary
{
    public class RequiredFieldValidatorExtended : RequiredFieldValidator
    {
        public RequiredFieldValidatorExtended()
        {

        }

        private string _regEx;
        public string RegEx
        {
            get
            {
                return _regEx;
            }
            set
            {
                _regEx = this.RegEx;
            }
        }

        protected override bool EvaluateIsValid()
        {
            TextBox textBox = (TextBox)Page.Form.FindControl(ControlToValidate);
            if (textBox.Text != null && textBox.Text.Length > 0)
            {
                if (this._regEx != null && _regEx.Length > 0)
                {
                    if (Regex.IsMatch(textBox.Text, _regEx))
                        IsValid = true;
                    else
                        IsValid = false;
                }
                IsValid = true;
            }
            else
                IsValid = false;

            base.Validate();
            return IsValid;
        }
    }
}
War es hilfreich?

Andere Tipps

Sie sollten überschreiben EvaluateIsValid() Methode. BaseValidator.Validate() Methode verwendet virtual EvaluateIsValid im Inneren. Z.B:

protected override bool EvaluateIsValid()
{
    bool isValid = base.EvaluateIsValid();
    if (isValid)
    {
        string controlToValidate = this.ControlToValidate;
        string controlValue = GetControlValidationValue(controlToValidate);
        if (!string.IsNullOrWhiteSpace(controlValue))
        {
            if (this._regEx != null && _regEx.Length > 0)
            {
                if (Regex.IsMatch(controlValue, _regEx))
                    isValid = true;
            }
        }
    }


    return isValid;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top