【问题标题】:how to add dynamic custom client side validator in asp.net如何在 asp.net 中添加动态自定义客户端验证
【发布时间】:2011-07-07 01:39:21
【问题描述】:

我有在 ASP.NET 中动态创建的文本框控件。我想为这些控件添加动态自定义验证器。这些验证器应该在客户端运行。我有以下代码sn-p:

    protected override void InitDynamicControls()
    {
        registerScript();

        CustomValidator cv = new CustomValidator();
        cv.ErrorMessage = "error";
        cv.Display = ValidatorDisplay.Dynamic;
        cv.ControlToValidate = TextField.ID;
        cv.ValidationGroup = "ConfigurationValidation";
        cv.ClientValidationFunction = "ConfigurationOption_ClientValidate";

        base.Controls.Add(cv);
    }


    private void registerScript()
    {
        System.Text.StringBuilder script = new System.Text.StringBuilder();

        script.Append("<script language=\"javascript\">\n");
        script.Append("function ConfigurationOption_ClientValidate(source, arguments) \\{arguments.IsValid = false;\\}\n");
        script.Append("</script>\n");

        Type type =  this.GetType();

        if (!Page.ClientScript.IsClientScriptBlockRegistered(type, "ConfigurationOption_ClientValidate"))
            Page.ClientScript.RegisterClientScriptBlock(type, "ConfigurationOption_ClientValidate", script.ToString());
    }

javascript 中的方法将包含逻辑。方法 InitDynamicControls() 在 Page_Load 方法中加载。当我点击页面上的按钮时,验证器没有运行。

你能帮我解决什么问题吗? 谢谢

【问题讨论】:

    标签: javascript asp.net validation


    【解决方案1】:

    试试这个:

    script.Append("<script type='text/javascript'>");
            script.Append("function ConfigurationOption_ClientValidate(source, arguments) {arguments.IsValid = false; }");
            script.Append("</script>");
    

    或者更好地使用这个:

    private void registerScript()
    {
        Type type = this.GetType();
    
        if (!Page.ClientScript.IsClientScriptBlockRegistered(type, "ConfigurationOption_ClientValidate"))
            Page.ClientScript.RegisterClientScriptBlock(type, "ConfigurationOption_ClientValidate", "function ConfigurationOption_ClientValidate(source, arguments) { arguments.IsValid = false; }", true);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 2017-05-03
      • 1970-01-01
      相关资源
      最近更新 更多