Расширение Asp.net - PullRequest
       2

Расширение Asp.net

3 голосов
/ 12 июня 2010

Как расширить CompareValidator, чтобы я мог проверить, если пользователь написал какой-то текст в ControlToValidate, то он должен также написать некоторый текст в ControlToCompare.

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Вам не нужно расширять CompareValidator, чтобы решить эту проблему. Используйте RequiredFieldValidator на обоих элементах управления, чтобы проверить, что они не пусты. Этот подход имеет преимущество проверки на стороне клиента, а также позволяет избежать обратной передачи на сервер.

1 голос
/ 12 июня 2010

Попробуйте:

public class ExtendedCompareValidator : CompareValidator
{

    protected override void OnPreRender(EventArgs e)
    {
        if (!string.IsNullOrEmpty(this.ControlToValidate) && string.IsNullOrEmpty(this.ControlToCompare))
            throw new HttpException("You have to set the 'ControlToCompare' property.");

        base.OnPreRender(e);
    }

}

Web.Config

<pages>
  <tagMapping>
    <add tagType="System.Web.UI.WebControls.CompareValidator, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mappedTagType="MyWebApp.ExtendedCompareValidator, MyWebApp"/>
  </tagMapping>
</pages>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...