1
<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 值通过查询从数据库中获取。

我怎么解决这个问题。

4

2 回答 2

1

接受的答案是完全错误的!

简单地说,您不能将 CompareValidator 与 HiddenField 一起使用。您需要使用 CustomValidator。

请参阅:asp:RequiredFieldValidator 不验证隐藏字段

于 2014-01-28T19:24:06.023 回答
-1

目标的属性

ControlToCompare="txtAppSanctionLimit"  

可能应该指向您的隐藏字段。

ControlToCompare="hfAppReqeustAmt"

并且 ControlToValidate 的属性应该指向您的用户数据输入字段。

ControlToValidate="txtAppSanctionLimit"

因为它当前指向示例代码中未显示的控件。

编辑:根据MSDN的 CompareValidator.ControlToCompare -

如果要比较的控件隐藏或位于不可见的容器(例如 Panel 控件)内,则验证器仅执行服务器端验证。验证器客户端脚本仅支持可见控件。

于 2013-04-12T17:38:28.510 回答