2010-05-11 2 views
1

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

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

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

Спасибо за помощь.

+0

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

+0

К сожалению, это дизайнерское решение, которое мне не под силу. Они были недовольны переключателями. –

ответ

1

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

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

+0

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

+0

Инструментарий управления не работал по двум причинам. 1) Мы все еще запускаем 2.0 здесь, не надеясь на обновление в ближайшее время, а версия 2.0 для инструментария больше не доступна. 2) Я должен использовать стандартные теги ввода html, а не флажки. Так что, похоже, мне придется написать JavaScript, чтобы заставить это работать. –

2

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

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

+0

К сожалению, это решение, которое было вне моего контроля. Люди, которые запросили отчет, не любили переключатели и хотели установить флажки. :/В противном случае да, это было бы правильным решением. –

1

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

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

+0

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

1

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

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

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

+0

Страница теперь находится здесь [http://coding.infoconex.com/post/2010/10/11/ASPNET-CustomValidator-that-validates-multiple-controls-using-both-Server-Side-and- Клиент-Side-скриптов) –

1

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

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

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

Это работает, но это довольно некрасиво IMO