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

在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 | 引用: 0 | 查看次数: 4350
发表评论
登录后再发表评论!