我无法理解页面验证

时间:2012-09-05 17:38:14

标签: asp.net

好的,所以我的asp.net页面包含了所有比较和requiredfield验证器。这让我有两个问题。

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

  2. 如果我有一个requirefield验证器,并且我想在特殊情况下将其关闭,那么在代码隐藏中我会将其设置为true吗?我可以在“保存”按钮单击之前执行此操作,然后才能阻止按钮运行吗?

4 个答案:

答案 0 :(得分:1)

据我所知,

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

  2. 不,你不能在保存按钮点击上这样做,因为在验证通过之前不会点击按钮点击。

  3. 希望这有助于!!

答案 1 :(得分:1)

1如果要添加验证服务器

protected void Button1_Click(object sender, EventArgs e) {

//Proceed only if the validation is successfull
if (!Page.IsValid) {
 return;}

}

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

答案 2 :(得分:1)

1

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

请注意,如果您需要做任何异国情调,可以创建自定义验证器。

2

根据您的需要,您可以在需要时设置验证器的Enabled属性。详细了解here

答案 3 :(得分:0)

Page.IsValid的#1问题还可以。

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

ValidatorEnable(workPhoneValidator, false);

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