Расширение RequiredFieldValidator - PullRequest
0 голосов
/ 16 марта 2011

Здравствуйте. Я пытаюсь расширить requirefieldvalidator, чтобы получить новое свойство и проверить выражения regularexpressions.Я знаю, что могу использовать элемент управления RegularExpression, но тогда мне нужно 2 элемента управления, поэтому я хочу устранить его, поэтому мне нужно использовать только два элемента управления.Есть и другие функции, которые я хочу сделать, в том числе и расширение.

Моя проблема в том, что я не знаю, что переопределить - я пробовал Validate (), но я получаю «не могу переопределить унаследованный член».Web.UI.WebControls.BaseValidator.Validate () «потому что он не помечен как виртуальный, абстрактный или переопределенный», и я понимаю, что EvaluateIsValid () предназначен для проверки элемента управления, а не того, что находится в элементе управления.

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Вы должны переопределить EvaluateIsValid() метод. BaseValidator.Validate() метод использует virtual EvaluateIsValid для внутреннего использования. E.g.:

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;
}
1 голос
/ 16 марта 2011

Я думаю, что вы должны использовать CustomValidator или наследовать от абстрактного класса BaseValidator

http://msdn.microsoft.com/en-us/library/aa720677(v=vs.71).aspx

...