CustomValidator для проверки нескольких элементов управления - PullRequest
1 голос
/ 11 мая 2010

Есть ли способ заставить пользовательский валидатор принимать входные данные от двух элементов управления, скажем, например, от двух флажков, и убедиться, что установлен только один?

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

Даже если на самом деле это неправильное направление, я хотел бы знать, как это сделать, если я столкнусь с ситуацией, когда это применимо, то есть, если это возможно.

Заранее спасибо за помощь.

Ответы [ 5 ]

2 голосов
/ 11 мая 2010

Если вы хотите убедиться, что установлен только один из двух флажков, вы используете неправильный элемент управления.

Используйте переключатель для установки эксклюзивного выбора.

1 голос
/ 08 июня 2011

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

protected void validator1_ServerValidate(...){
  myValidationMethod(...);
}

protected void validator2_ServerValidate(...){
  myValidationMethod(...);
}

Это работает, но довольно уродливо ИМО

1 голос
/ 14 октября 2010

Я написал статью в блоге об этой самой вещи.

http://coding.infoconex.com/post/2010/10/11/ASPNET-CustomValidator-that-validates-multiple-controls-using-both-Server-Side-and-Client-Side-scripting

Объединяет проверку на стороне клиента и на стороне сервера и повторную проверку

1 голос
/ 11 мая 2010

AJAX Control Toolkit имеет эксклюзивный список флажков. Я согласен с необходимостью, поскольку переключатели не могут быть сняты, как флажки.

Если вы хотите запустить пользовательский валидатор, похоже, что вы либо делаете это на стороне сервера, и в этот момент вы можете выполнять любую логику в коде. И наоборот, вы можете свернуть свой собственный javascript, чтобы применить его.

1 голос
/ 11 мая 2010

Я согласен с Митчелом, что RadioButton кажется более подходящим.

Но вы пытались подключить CompareValidator и настроить его для проверки UnEqual? ​​

...