【问题标题】:I'm having trouble understanding page validation我无法理解页面验证
【发布时间】:2012-09-05 17:38:14
【问题描述】:

好的,所以我有我的 asp.net 页面,其中包含我所有的比较和必填字段验证器。这让我有两个担忧。

  1. 我还需要什么额外的验证?我需要后面的代码中的任何内容吗?我希望他们在他们的文本框信息完成之前无法点击“保存”按钮,并且似乎只使用验证器控件来执行此操作,但我不确定是否需要采取其他步骤。

  2. 如果我有一个必填字段验证器并且我想在特殊情况下将其关闭,我应该在代码隐藏的哪个位置将其设置为 true?我可以在单击“保存”按钮阻止按钮运行之前执行此操作吗?

【问题讨论】:

标签: asp.net


【解决方案1】:

1.

您需要尽可能多的验证,您可以创建许多不同的验证器。 您需要在后面的代码中进行服务器端验证。如果发生回发,则表单通过了验证,但有一些验证功能在客户端无法使用。例如,您注册到主页,并且您有一个需要用户名的表单,并且还有一个正则表达式验证器。这些验证器将在客户端运行。但是,如果用户名必须是唯一的,并且您只能使用数据库进行检查,那么显然无法在客户端进行检查,因此,客户端将评估页面是否有效,将发生回发并且检查用户名是否唯一是服务器端的工作。

请注意,如果您需要做一些特殊的事情,您可以创建自定义验证器。

2.

根据您的需要,您可以在需要时设置验证器的 Enabled 属性。阅读更多关于 here 的信息。

【讨论】:

    【解决方案2】:

    据我所知,

    1. 每当我们使用 ASP.NET 验证器时,我们都应该在服务器端(代码隐藏)检查“Page.IsValid”。即使在浏览器上禁用了 javascript,这也将确保在服务器端进行检查。

    2. 不,您不能在单击保存按钮时执行此操作,因为在验证通过之前不会点击按钮。

    希望这有帮助!

    【讨论】:

      【解决方案3】:

      1 如果你想添加验证服务器

      protected void Button1_Click(object sender, EventArgs e) {
      
      //Proceed only if the validation is successfull
      if (!Page.IsValid) {
       return;}
      
      }
      

      2 可以将CausesValidation="false"设置为按钮

      【讨论】:

        【解决方案4】:

        Page.IsValid 的第一个问题是可以的。

        requiredfieldvalidator 是一个 javascript 验证器,因此一旦启用,您就无法从代码隐藏中禁用它(除非它满足条件并且您可以通过)。但可以通过 javascript 禁用它,请检查以下代码:

        ValidatorEnable(workPhoneValidator, false);
        

        链接:Dynamically enable or disable RequiredFieldValidator based on value of DropDownList

        【讨论】:

          猜你喜欢
          • 2010-11-30
          • 2021-11-07
          • 1970-01-01
          • 2020-12-31
          • 1970-01-01
          • 1970-01-01
          • 2019-03-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多