How do I hook up javascript to my CustomValidator control in .Net

前端 未结 3 1539
没有蜡笔的小新
没有蜡笔的小新 2021-01-28 12:30

I have created a CustomValidator control

public class MyValidator :CustomValidator, IScriptControl {}

and also created the equivalent client sc

相关标签:
3条回答
  • 2021-01-28 13:03

    I've answered this myself as the other answer didn't quite achieve exactly what I wanted. I ended up using.

    public class MyValidator : BaseValidator, IScriptControl  {
    
      protected override void AddAttributesToRender(HtmlTextWriter writer) {
        base.AddAttributesToRender(writer);
        Page.ClientScript.RegisterExpandoAttribute(this.ClientID, "evaluationfunction", "MyJavascriptFunction");
      }
    
    }
    

    Which will cause the control to generate:

    MyValidator1.evaluationfunction = "MyJavascriptFunction";
    
    0 讨论(0)
  • 2021-01-28 13:14

    You can set the ClientValidationFunction property of the base class like this -

    base.ClientValidationFunction = "MyCustomJavascriptFunction";
    

    So, it will render it like this -

    MyValidator1.evaluationfunction = "MyCustomJavascriptFunction";
    

    You can do it from the control also by setting the same property.

    EDIT: You can do

    document.getElementById("<%= ValidatorId %>").evaluationfunction = "MyCustomJavascriptFunction";
    
    0 讨论(0)
  • 2021-01-28 13:23

    Actually much easier is to use the ClientValidationFunction property of the asp:CustomValidator like below. Be sure NOT to specify a ControlToValidate property.

    <asp:CustomValidator ClientValidationFunction="MyCustomJSFunction" Text="Required" ForeColor="Red"></asp:CustomValidator>
    
    function MyCustomJSFunction(validator, args) {
        args.IsValid = my condition;
    }
    
    0 讨论(0)
提交回复
热议问题