⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webvalidation.aspx

📁 书籍教程 >> .Net教程 >> asp.net编程精彩百例
💻 ASPX
📖 第 1 页 / 共 2 页
字号:

<%@ Register TagPrefix="Acme" Namespace="Acme" Assembly="QSTools" %> <%@ Register TagPrefix="Acme" TagName="SourceRef" Src="/quickstart/aspplus/util/SrcRef.ascx"%>

<!-- #include virtual="/quickstart/aspplus/include/header.inc" -->

<h4>服务器控件窗体验证</h4>
<p>

<div class="indent" style="font-family:Verdana; font-size:8pt;">
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#intro">验证介绍</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#types">验证控件类型</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#client">客户端验证</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#errors">显示验证错误</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#compare">使用 <b>CompareValidator</b></a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#range">使用 <b>RangeValidator</b></a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#regex">使用正则表达式</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#custom">执行自定义验证</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#together">合在一起</a><br>
    <b> <img align="middle" src="/quickstart/images/bullet.gif">&nbsp;&nbsp;</b>
    <a class="toc2" href="#endofsection">本节小结</a><br>
</div>
<p>
<hr>

<!--BEGIN SECTION--> <a name="intro"><span class="subhead">验证介绍</span>
<p>
Web 窗体框架包含一组验证服务器控件,这些控件提供易用但功能强大的方法检查输入窗体的错误,并在必要时向用户显示消息。

<p>
验证控件像其他服务器控件一样添加到 Web 窗体页。有不同的控件用于特定的验证类型,如范围检查或模式匹配,以及确保用户不跳过输入字段的 <b>RequiredFieldValidator</b>。可以将多个验证控件附加到一个输入控件。例如,可以既指定需要输入,又指定输入必须包含特定范围的值。

<p>
验证控件使用 HTML 和 Web 服务器控件的有限子集。对于每个控件,特定的属性包含要验证的值。下表列出了可以验证的输入控件。

<p>
<div class="indent">
<table class="table2" width="400" cellpadding="3">
    <tr>
    <th>控件</th>
    <th>验证属性</th>
    </tr>
    <tr>
    <td><b>HtmlInputText</b></td>
    <td>Value</td>
    </tr>
    <tr>
    <td><b>HtmlTextArea</b></td>
    <td>Value</td>
    </tr>
    <tr>
    <td><b>HtmlSelect</b></td>
    <td>Value</td>
    </tr>
    <tr>
    <td><b>HtmlInputFile</b></td>
    <td>Value</td>
    </tr>
    <tr>
    <td><b>TextBox</b></td>
    <td>Text</td>
    </tr>
    <tr>
    <td><b>ListBox</b></td>
    <td>SelectedItem.Value</td>
    </tr>
    <tr>
    <td><b>DropDownList</b></td>
    <td>SelectedItem.Value</td>
    </tr>
    <tr>
    <td><b>RadioButtonList</b></td>
    <td>SelectedItem.Value</td>
    </tr>
</table>
</div>

<!--BEGIN SECTION--> <br> <a name="types"><br> <span class="subhead">验证控件类型</span>
<p>
最简单的验证形式是必需的字段。如果用户在字段中输入任何值,则字段有效。如果页中的所有字段都有效,则页有效。下面的示例使用 <b>RequiredFieldValidator</b> 阐释了这一点。

<p>
<!-- server-side required field -->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/CS/validator1.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator1.src"
  Icon="/quickstart/aspplus/images/validator1.gif"
  Caption="C# Validator1.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/VB/validator1.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator1.src"
  Icon="/quickstart/aspplus/images/validator1.gif"
  Caption="VB Validator1.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/JS/validator1.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator1.src"
  Icon="/quickstart/aspplus/images/validator1.gif"
  Caption="JScript Validator1.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>


<p>
还有用于特定验证类型(如范围检查或模式匹配)的验证控件。下表列出了验证控件。

<p>
<div class="indent">
<table class="table2" width="80%" cellpadding=3>
    <tr>
    <th>控件名称</th>
    <th>说明</th>
    </tr>
    <tr>
    <td style="width:25%"><b>RequiredFieldValidator</b></td>
    <td>确保用户不跳过输入。</td>
    </tr>
    <tr>
    <td style="width:25%"><b>CompareValidator</b></td>
    <td>使用比较运算符(小于、等于、大于等)将用户的输入与另一控件的常数值或属性值进行比较。</td>
    </tr>
    <tr>
    <td style="width:25%"><b>RangeValidator</b></td>
    <td>检查用户的输入是否在指定的上下边界之间。 可以检查数字、字母或日期对内的范围。可以将边界表示为常数。</td>
    </tr>
    <tr>
    <td style="width:25%"><b>RegularExpressionValidator</b></td>
    <td>检查输入是否与正则表达式定义的模式匹配。该验证类型允许检查可预知的字符序列,如社会保障号、电子邮件地址、电话号码、邮政编码等中的字符序列。</td>
    </tr>
    <tr>
    <td style="width:25%"><b>CustomValidator</b></td>
    <td>使用您自己编写的验证逻辑检查用户的输入。该验证类型允许检查运行时导出的值。</td>
    </tr>
    <tr>
    <td style="width:25%"><b>ValidationSummary</b></td>
    <td>以摘要的形式显示页上所有验证程序的验证错误。</td>
    </tr>
</table>
</div>


<!--BEGIN SECTION--> <br> <a name="client"><br> <span class="subhead">客户端验证</span>
<p>
验证控件总是在服务器代码中执行验证检查。然而,如果用户使用的浏览器支持 DHTML,则验证控件也可使用客户端脚本执行验证。在客户端验证中,当向服务器提交窗体时在客户端检测任何错误。如果发现任何验证程序有错误,将取消向服务器提交窗体,并显示验证程序的 <b>Text</b> 属性。这样可允许用户在向服务器提交窗体前更正输入。包含错误的字段一失去焦点,就立即重新验证字段值,从而为用户提供丰富的交互式验证体验。

<p>
注意,Web 窗体页框架总是在服务器上执行验证,即使已经在客户端执行了验证。这有助于防止用户能够通过模拟另一用户或预获准的事务避开验证。

<p>
默认情况下启用客户端验证。如果客户端可以,则将自动执行上层验证。若要禁用客户端验证,请将页的 <b>ClientTarget</b> 属性设置为“Downlevel”(“Uplevel”强制执行客户端验证)。

<p>
<!-- client-side required field -->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/CS/validator2.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator2.src"
  Icon="/quickstart/aspplus/images/validator2.gif"
  Caption="C# Validator2.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/VB/validator2.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator2.src"
  Icon="/quickstart/aspplus/images/validator2.gif"
  Caption="VB Validator2.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/JS/validator2.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator2.src"
  Icon="/quickstart/aspplus/images/validator2.gif"
  Caption="JScript Validator2.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>

<!--BEGIN SECTION--> <br> <a name="errors"><br> <span class="subhead">显示验证错误</span>
<p>
在处理用户的输入时(如提交窗体时),Web 窗体页框架将用户的输入传递给关联的验证控件。验证控件测试用户的输入,并设置属性以指示输入是否通过了验证测试。处理完所有的验证控件后,将设置页上的 <b>IsValid</b> 属性。如果有任何控件显示验证检查失败,则整页设置为无效。
<p>

<p>
如果验证控件有错误,错误信息可由该验证控件显示在页中,或者显示在页上其他地方的 <b>ValidationSummary</b> 控件中。当页的 <b>IsValid</b> 属性为 false 时,显示 <b>ValidationSummary</b> 控件。它轮询页上的每个验证控件,并聚合每个控件公开的文本消息。下面的示例阐释如何用 <b>ValidationSummary</b> 控件显示错误。

<p>
<!--ValidationSummary-->
<Acme:LangSwitch runat="server">
  <CsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/CS/validator3.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator3.src"
  Icon="/quickstart/aspplus/images/validator3.gif"
  Caption="C# Validator3.aspx"
  runat="server" />
  </CsTemplate>
  <VbTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/VB/validator3.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator3.src"
  Icon="/quickstart/aspplus/images/validator3.gif"
  Caption="VB Validator3.aspx"
  runat="server" />
  </VbTemplate>
  <JsTemplate>
<Acme:SourceRef
  RunSample="/quickstart/aspplus/samples/webforms/validate/JS/validator3.aspx"
  ViewSource="/quickstart/aspplus/samples/webforms/validate/validator3.src"
  Icon="/quickstart/aspplus/images/validator3.gif"
  Caption="JScript Validator3.aspx"
  runat="server" />
  </JsTemplate>
</Acme:LangSwitch>


<!--BEGIN SECTION--> <br> <a name="compare"><br> <span class="subhead">使用 <b>CompareValidator</b></span>
<p>
<b>CompareValidator</b> 服务器控件比较两个控件的值。<b>CompareValidator</b> 使用三个键属性执行验证。<b>ControlToValidate</b> 和 <b>ControlToCompare</b> 包含要比较的值。<b>Operator</b> 定义要执行的比较类型,例如 Equal 或 Not Equal。<b>CompareValidator</b> 通过将这些属性计算为表达式来执行验证,如下所示:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -