木子屋 Dnawo's BLOG

ASP.NET:使用CompareValidator控件注意事项

👤 dnawo 📅 2011-02-22 👁 5013 👍 0 💬 0 🔄 来源:本站原创
在ASP.NET2.0中,CompareValidator控件用来验证两个输入控件中的内容是否一样,与之对应有两个属性ControlToCompare和ControlToValidate,用来设置要比较的两个输入控件的名称,按理说比较应该不分先后,两个属性的设置应该没什么讲究,但实际并非如此,看下边代码:

密码1:<asp:TextBox ID="txtUsp1" runat="server" TextMode="Password"></asp:TextBox>
<br />
密码2:<asp:TextBox ID="txtUsp2" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator ID="cvUsp2" runat="server" ControlToCompare="txtUsp1" 
    ControlToValidate="txtUsp2" ErrorMessage="不一致"></asp:CompareValidator>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

测试结果:当txtUsp2值为空时CompareValidator控件不会发生作用,经多次测试,确切的说是ControlToValidate属性对应的输入控件值为空时CompareValidator控件不发生作用。

所以,CompareValidator控件也应该要RequiredFieldValidator控件配合一块使用,并且RequiredFieldValidator控件应放在ControlToValidate属性对应的输入控件上使用。示例代码:

密码1:<asp:TextBox ID="txtUsp1" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvUsp1" runat="server" Display="Dynamic" 
    ErrorMessage="*" ControlToValidate="txtUsp1"></asp:RequiredFieldValidator>
<br />
密码2:<asp:TextBox ID="txtUsp2" runat="server" TextMode="Password"></asp:TextBox>
<asp:CompareValidator ID="cvUsp2" runat="server" ControlToCompare="txtUsp2" 
    ControlToValidate="txtUsp1" ErrorMessage="不一致"></asp:CompareValidator>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

评论(0)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 FCKeditor.Net_2.6.4安装和使用 下一篇 → 用正确的方法去解决问题