2009-04-27 3 views
0

Я создал контроль CustomValidatorКак подключить JavaScript для моего контроля CustomValidator в .Net

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, чтобы установить значение evaluationfunction? Например.

MyValidator1.evaluationfunction = "MyCustomJavascriptFunction"; 
+0

Да. Вы можете увидеть обновленный ответ. – Kirtan

ответ

1

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

public class MyValidator : BaseValidator, IScriptControl { 

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

} 

Который заставит контроль генерировать:

MyValidator1.evaluationfunction = "MyJavascriptFunction"; 
+0

Я пробовал это, но ASP.Net жаловался, что атрибут уже добавлен. – Remotec

1

Вы можете установить ClientValidationFunction свойство базового класса, как это -

base.ClientValidationFunction = "MyCustomJavascriptFunction"; 

Таким образом, это сделает это так -

MyValidator1.evaluationfunction = "MyCustomJavascriptFunction"; 

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

EDIT: Вы можете сделать

document.getElementById("<%= ValidatorId %>").evaluationfunction = "MyCustomJavascriptFunction"; 
+0

Выполнение этого добавляет строку MyValidator1.clientvalidationfunction = MycustomJavascriptFunction "; Есть ли способ установить MyValidator1.evaluationfunction? –

1

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

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

function MyCustomJSFunction(validator, args) { 
    args.IsValid = my condition; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^