Como faço para ligar o javascript para o meu controle CustomValidator em .Net
-
16-09-2019 - |
Pergunta
Eu criei um controle CustomValidator
public class MyValidator :CustomValidator, IScriptControl {}
e também criou o script de cliente equivalentes. A validação do servidor funciona bem, porém como faço para ligar o meu script de cliente?
O javascript olhares prestados como
var MyValidator1 = document.all ? document.all["MyValidator1"] : document.getElementById("MyValidator1");
MyValidator1.controltovalidate = "MyField";
MyValidator1.errormessage = "error";
MyValidator1.evaluationfunction = "MyValidatorEvaluateIsValid";
Como faço para substituir o javascript gerado para definir o valor de evaluationfunction? Por exemplo.
MyValidator1.evaluationfunction = "MyCustomJavascriptFunction";
Solução 2
Eu respondi isso mesmo como a outra resposta não chegou a atingir exatamente o que eu queria. Acabei usando.
public class MyValidator : BaseValidator, IScriptControl {
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
Page.ClientScript.RegisterExpandoAttribute(this.ClientID, "evaluationfunction", "MyJavascriptFunction");
}
}
O que fará com que o controle para gerar:
MyValidator1.evaluationfunction = "MyJavascriptFunction";
Outras dicas
Você pode definir a propriedade ClientValidationFunction da classe base como este -
base.ClientValidationFunction = "MyCustomJavascriptFunction";
Assim, ele irá torná-lo assim -
MyValidator1.evaluationfunction = "MyCustomJavascriptFunction";
Você pode fazê-lo a partir do controle também definindo a mesma propriedade.
EDIT: Você pode fazer
document.getElementById("<%= ValidatorId %>").evaluationfunction = "MyCustomJavascriptFunction";
Na verdade muito mais fácil é usar a propriedade ClientValidationFunction do asp: CustomValidator como abaixo. Não se esqueça de especificar uma propriedade ControlToValidate.
<asp:CustomValidator ClientValidationFunction="MyCustomJSFunction" Text="Required" ForeColor="Red"></asp:CustomValidator>
function MyCustomJSFunction(validator, args) {
args.IsValid = my condition;
}