【问题标题】:Disable all Validator controls on a page禁用页面上的所有验证控件
【发布时间】:2009-10-07 18:55:22
【问题描述】:

在开发周期的早期阶段,如果我们只想快速从一个表单移动到另一个表单,让所有验证控件强制执行它们的规则有点烦人。

禁用页面上所有验证器控件的最简单方法是什么?

【问题讨论】:

    标签: asp.net validation


    【解决方案1】:

    设置一个javascript来获取页面中的所有验证器控件,并在for循环中将它们的值设置为false,这样就可以了

    function DisablePageValidators()
    {   
     if ((typeof(Page_Validators) != "undefined") && (Page_Validators != null)) 
      {
        var i;
        for (i = 0; i < Page_Validators.length; i++) {
            ValidatorEnable(Page_Validators[i], false);
        }
      }
    }
    

    【讨论】:

    • 如果你不验证服务器端,你就做错了!
    • 也验证服务器端?此人正在尝试禁用验证,因此我发布的此方法将禁用页面内的所有验证
    • 正在寻找一种方法将其全部关闭——服务器端和客户端。
    • 是的 - 所以你说你不检查页面在服务器端是否有效?你不使用这个-msdn.microsoft.com/en-us/library/…
    • @RichardOD-我不明白你不同意什么,你刚刚发布了我必须理解的相同答案
    【解决方案2】:

    试试这个:

    Page_ValidationActive = false;

    【讨论】:

      【解决方案3】:

      最好的办法是在页面上recursively loop through all controls,查找从BaseValidator class 继承的所有控件,然后将它们的Enabled 属性设置为False。你可以把它写成一个简单的库方法。

      【讨论】:

        【解决方案4】:

        如果允许您输入垃圾数据,是否可以更轻松地进行快速破解,让您直接跳到您想要进入的页面,而不是摆弄验证?

        【讨论】:

        • 也许是这样。我希望有一种简单的方法可以“摆弄”验证并将其关闭。
        【解决方案5】:

        从页面中删除它们。

        【讨论】:

          【解决方案6】:

          这个解决方案对我来说很好。

          foreach (BaseValidator vValidator in Page.Validators)
          {
              vValidator.EnableClientScript = false;
              vValidator.Enabled = false;
          }
          

          谢谢。=> https://forums.asp.net/post/1446219.aspx

          【讨论】:

            猜你喜欢
            • 2011-02-11
            • 1970-01-01
            • 1970-01-01
            • 2011-01-20
            • 2023-03-19
            • 2013-12-10
            • 2023-04-10
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多