1. ASP.NET 服务器控件的客户端验证 如果用户使用的浏览器支持动态 HTML (DHTML),则 ASP.NET 验证控件可以使用客户端脚本来执行验证。因为这种控件可以提供及时反馈(无需到服务器的往返过程),所以用户会感觉到页的性能有所改善。 在大多数情况下,无需对页或验证控件作出任何更改便可使用客户端验证。控件将自动检测浏览器是否支持 DHTML 并执行相应的检查。客户端验证使用的错误显示机制和服务器端验证相同。 客户端验证的差异
但是,在页级别上公开的验证信息有所不同。在服务器上,页支持属性;在客户端,它包含全局变量。下表比较了在页上公开的信息。 客户端页变量 (无等效项) 发送具有客户端验证错误的页 默认情况下,在执行客户端验证时,如果页上出错,则用户无法将页发送到服务器。但您可能发现有必要允许用户即使在出错时也可以发送。例如,页上可能有一个取消按钮或一个导航按钮,您需要该按钮即使在部分控件未通过验证的情况下也提交页。 在特定条件下,您可能需要避开验证。例如,您可能具有一个页面,即使用户没有正确填写所有验证字段,也应该可以发送页。您可以设置 ASP.NET 服务器控件来避开客户端和服务器的验证,而不只是客户端验证。 您还可以禁用验证控件,以使它根本不在页面上呈现并且不进行使用该控件的验证。 如果要执行服务器上的验证,不执行客户机上的验证,您可以将单独验证控件设置为不生成客户端脚本。如果客户端上的动态更新导致页的布局出现问题,或者如果要在验证之前执行一些服务器代码,这一措施将尤为有用。 在特定控件中禁用验证
下面的示例显示如何创建“取消”按钮,以便避开验证检查: C# 复制代码
验证控件测试用户输入,设置错误状态,并生成错误信息。它们不会更改页的处理流程,例如,在检测到用户输入错误时不会略过代码。取而代之的是,您将在执行应用程序的特定逻辑之前在代码中测试控件的状态。如果检测到错误,您自己的代码将无法运行;页将继续处理并返回给用户,并向其显示错误信息。 您可以测试常规的页范围的状态,并且可以测试单独控件的状态。通常,您在为页创建的事件处理程序中完成上述工作。 测试常规错误状态
下面的代码示例演示按钮的事件处理程序。该代码测试页的 C# 复制代码
下面的代码示例演示如何获取单个验证控件的状态。 Visual Basic 复制代码 " & oValidator.ErrorMessage End If Next Label1.Text = msg End IfEnd If C# 复制代码 " + aValidator.ErrorMessage; } } Label1.Text = msg; }} |
|