2009-05-15 1 views
0

У меня есть страница с тремя переключателями, в зависимости от выбранной кнопки. Мне нужно проверить некоторые элементы управления (используя обязательные поля для проверки правильности). Помимо использования пользовательских валидаторов, есть ли способ сделать это?Дополнительная проверка в ASP.NET

Благодаря

ответ

1

Добавить OnSelectedIndexChanged в RadioButtonList (или CheckedChanged, если они отдельные кнопки управления радио)

В коде позади, .Enable & .Disable конкретные необходимые валидаторы поля.

+0

... который потребует заметной обратной передачи, если только Ajax-ified! – Cerebrus

+0

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

+1

. Вы можете включить/отключить элементы управления Validator с помощью javascript на стороне клиента ... http://msdn.microsoft.com /en-us/library/aa479045.aspx#aspplusvalid_clientside - найдите эту страницу для функции 'ValidatorEnable' –

2

ASP.NET валидаторы предлагают client-side API, что позволяет:

  • Проверка на стороне клиента
  • подключить сторону валидаторы клиента.
  • Включить или отключить валидаторы на стороне клиента.

Синтаксис функции ValidatorEnable является:

ValidatorEnable(rfvMyValidator, boolState); 
+0

Большое спасибо, я собираюсь попробовать это –

1

Я попробовал это на маленьком примере, и он работал на меня:

У меня есть

-2textboxes: textBox1 и TextBox2

-RequiredFieldValidator: RequiredFieldValidator1 с ControlToValidate = "TextBox1"

-RadioButton: RequiredFieldValidator1

Этот код генерируется RequiredFiledValidator:

<script type="text/javascript"> 
//<![CDATA[ 
var RequiredFieldValidator1 = document.all ? document.all["RequiredFieldValidator1"] : document.getElementById("RequiredFieldValidator1"); 
RequiredFieldValidator1.controltovalidate = "TextBox1"; 
RequiredFieldValidator1.errormessage = "RequiredFieldValidator"; 
RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; 
RequiredFieldValidator1.initialvalue = ""; 
//]]> 
</script> 

Я хочу, когда пользователь нажимает на RadioButton1, чтобы переключить проверку на TextBox2.

Это, как я это сделал:

protected void Page_Load(object sender, EventArgs e) 
     { 
      RadioButton1.Attributes.Add("onclick", "RequiredFieldValidator1.controltovalidate=\"TextBox2\""); 
     } 
+0

Спасибо, что нашли время ответить мой вопрос, как я упоминал в вопросе, у меня есть 3 переключателя с тремя разделами (один раздел, связанный с каждым переключателем), каждый раздел содержит один элемент управления, который мне нужно проверить, точно в первом разделе у меня есть текстовое поле, fileupload во втором и dropdownlist в третьем. Я показываю требуемое значение валидатора рядом с каждым элементом управления. Проблема, которую вы видите, заключается в том, что у меня есть несколько RequiredFieldValidators. Я собираюсь попробовать ValidatorEnable, как указано в одном из ответов. –

0

Валид, вы не укажете ли вы используете ASP.Net формы или ASP.Net MVC.

Если вы используете ASP.Net MVC, ответ довольно прост ...

Во-первых, вы должны создать класс видовую, который должен включать в логические атрибуты, соответствующие вашим радиокнопок.

Просто используйте Foolproof библиотеку проверки, которая доступна на Codeplex и должен работать вне коробки для вашей проблемы: https://foolproof.codeplex.com/

Он поддерживает, помимо прочего, следующие проверки «requiredif» атрибуты/украшения:

[RequiredIf] 
[RequiredIfNot] 
[RequiredIfTrue] 
[RequiredIfFalse] 
[RequiredIfEmpty] 
[RequiredIfNotEmpty] 
[RequiredIfRegExMatch] 
[RequiredIfNotRegExMatch] 

Для начала легко:

  • Загрузить пакет из предоставленного ссылки
  • Добавить ссылку на прилагаемый .dll файл
  • Импортировать включенные JavaScript файлов
  • Убедитесь, что ваши взгляды ссылки на включенные JavaScript файлов из его HTML для Ненавязчивого JavaScript и JQuery проверки.

Все, что после этого осталось сделать, чтобы украсить свои поля, которые должны быть условно валидацию с атрибутом [RequiredIfTrue], который должен указывать на соответствующее значение RadioButton в вашей ViewModel.