Необязательная проверка в ASP.NET - PullRequest
0 голосов
/ 15 мая 2009

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

Спасибо

Ответы [ 4 ]

2 голосов
/ 15 мая 2009

Валидаторы ASP.NET предлагают клиентский API , который позволяет:

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

Синтаксис функции ValidatorEnable:

 ValidatorEnable(rfvMyValidator, boolState);
1 голос
/ 15 мая 2009

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

У меня есть

-2 текстовых поля: TextBox1 и TextBox2

-RequiredFieldValidator: RequiredFieldValidator1 with 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\"");
        }
1 голос
/ 15 мая 2009

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

В приведенном ниже коде .Enable & .Disable специальные обязательные валидаторы полей.

0 голосов
/ 19 февраля 2014

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

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

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

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

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

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

Начать легко:

  • Скачать пакет можно по предоставленной ссылке
  • Добавить ссылку на включенный DLL-файл
  • Импорт включенных файлов JavaScript
  • Убедитесь, что ваши представления ссылаются на включенные файлы javascript из своего HTML-кода для ненавязчивой проверки javascript и jquery.

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

...