<asp:TextBox ID="txtAppSanctionLimit" runat="server" onblur="calcCustDebtEquity()"> </TextBox>
<asp:HiddenField ID="hfAppReqeustAmt" runat="server" Value="0" />
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Proposed Limit is never greater than Request Limit" ControlToCompare="txtAppSanctionLimit" ControlToValidate="txtRequestLimits" Operator="GreaterThan"
ValidationGroup="Report3" Display="none" ></asp:CompareValidator>
<asp:Button ID="btnLimtUpdate" runat="server" Text="Update" ValidationGroup="Report3"
onclick="btnLimtUpdate_Click"/>
<asp:ValidationSummary ID="ValidationSummary3" runat="server" ShowMessageBox="true" ShowSummary="false" ValidationGroup="Report3" />
最重要的是在Visual Studio 2010下的defalt.aspx页面中使用过。 如果txtAppSanctionLimit值大于hfAppReqeustAmt值,我想显示验证消息。请注意,hfAppReqeustAmt值从带有查询的数据库中获取。
我该如何解决这个问题。
答案 0 :(得分:1)
接受的答案完全错误!
简单地说,你不能将CompareValidator与HiddenField一起使用。您需要使用CustomValidator。
请参阅:asp:RequiredFieldValidator does not validate hidden fields
答案 1 :(得分:-1)
目标
的属性ControlToCompare="txtAppSanctionLimit"
应该指向你隐藏的领域。
ControlToCompare="hfAppReqeustAmt"
并且应将ControlToValidate的属性指向您的用户数据输入字段。
ControlToValidate="txtAppSanctionLimit"
因为它当前指向示例代码中未显示的控件。
编辑:每个MSDN用于CompareValidator.ControlToCompare -
如果要比较的控件是隐藏的或位于容器内(例如 一个不可见的Panel控件),验证器执行 仅限服务器端验证。验证程序客户端脚本仅支持 可见的控制。