Как подключить JavaScript к моему элементу управления CustomValidator в .Net - PullRequest
0 голосов
/ 27 апреля 2009

Я создал элемент управления CustomValidator

public class MyValidator :CustomValidator, IScriptControl {}

, а также создал эквивалентный клиентский скрипт. Проверка сервера работает нормально, как мне подключить мой клиентский скрипт?

Рендеринг JavaScript выглядит как

var MyValidator1 = document.all ? document.all["MyValidator1"] : document.getElementById("MyValidator1");
MyValidator1.controltovalidate = "MyField";
MyValidator1.errormessage = "error";
MyValidator1.evaluationfunction = "MyValidatorEvaluateIsValid";

Как переопределить сгенерированный javascript, чтобы установить значение функции оценки? Э.Г.

MyValidator1.evaluationfunction = "MyCustomJavascriptFunction";

Ответы [ 3 ]

1 голос
/ 27 апреля 2009

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

public class MyValidator : BaseValidator, IScriptControl  {

  protected override void AddAttributesToRender(HtmlTextWriter writer) {
    base.AddAttributesToRender(writer);
    Page.ClientScript.RegisterExpandoAttribute(this.ClientID, "evaluationfunction", "MyJavascriptFunction");
  }

}

Что приведет к генерации элемента управления:

MyValidator1.evaluationfunction = "MyJavascriptFunction";
1 голос
/ 11 мая 2016

На самом деле гораздо проще использовать свойство ClientValidationFunction asp: CustomValidator, как показано ниже. Обязательно НЕ указывайте свойство ControlToValidate.

<asp:CustomValidator ClientValidationFunction="MyCustomJSFunction" Text="Required" ForeColor="Red"></asp:CustomValidator>

function MyCustomJSFunction(validator, args) {
    args.IsValid = my condition;
}
1 голос
/ 27 апреля 2009

Вы можете установить свойство ClientValidationFunction базового класса следующим образом -

base.ClientValidationFunction = "MyCustomJavascriptFunction";

Итак, он будет выглядеть так -

MyValidator1.evaluationfunction = "MyCustomJavascriptFunction";

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

РЕДАКТИРОВАТЬ: Вы можете сделать

document.getElementById("<%= ValidatorId %>").evaluationfunction = "MyCustomJavascriptFunction";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...