ASP.Net RequiredFieldValidator пользовательское свойство EvaluationFunction - PullRequest
1 голос
/ 28 ноября 2010

Мой пользовательский ASP.Net RequiredFieldValidator отображает разметку следующим образом ...

var af1_ctl00 = document.all ? document.all["af1_ctl00"] : document.getElementById("af1_ctl00");
af1_ctl00.controltovalidate = "af1_af1_txt";
af1_ctl00.display = "None";
af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
af1_ctl00.initialvalue = ""; 

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

Я пробовал следующие методы.

  • Добавление нового атрибута при визуализации элемента управления и при визуализации атрибутов
  • Вызов RemoveAttribute с последующим Attributes.Add
  • Попытка сбросить его с помощью javascript.

Кажется, что ничего не работает.

Если я могу получить решение, котороеработает в коде c #, чтобы установить атрибут перед рендерингом, который будет лучшим для того, что я делаю.

1 Ответ

1 голос
/ 29 ноября 2010

Решается следующим образом ...

Валидаторы ASP.Net фактически определяют диапазон на странице, который является объектом DOM в Javascript. Затем они добавляют свойства к этому объекту. Таким образом, вы получите что-то подобное в коде, сгенерированном ASP.Net.

af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";

Затем вы можете добавить на свою страницу некоторый javascript, который делает что-то подобное, используя Page.ClientScript.Register (....) в вашем коде позади ...

function NewValidationFunction() {
    return (1 == 1);
}

var val = document.getElementById('af1_ct100');
val.evaluationfunction = NewValidationFunction;

Функция проверки была изменена для использования вашей пользовательской функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...