【问题标题】:How to use compare validator to compare the data between two dropdownlists values?如何使用比较验证器来比较两个下拉列表值之间的数据?
【发布时间】:2017-04-21 05:19:24
【问题描述】:

我有两个用Year-Dates 填充的DropDownLists,我想在第二个 ddls 值小于第一个 ddls 值的情况下显示错误消息。

这是我目前使用的代码,它不起作用:

  <asp:CompareValidator 
       ID="cvEndYear2" Operator="GreaterThan" runat="server" CssClass="text-danger" 
       ValidationGroup="Save" ControlToValidate="ddlEndYear" Display="Dynamic" 
       ValueToCompare="ddlStartYear" ErrorMessage="Greater Than" SetFocusOnError="true">
  </asp:CompareValidator>

【问题讨论】:

标签: c# asp.net comparevalidator


【解决方案1】:

您还没有指定类型,请指定文本框中的数据类型:

 <asp:CompareValidator 
       ..........
       ..........
       ControlToValidate="ddlStartYear" 
       ControlToCompare="ddlEndYear"
       Operator="GreaterThanEqual"
       Type="Integer">
  </asp:CompareValidator>

你可能想看看at this tutorial

【讨论】:

  • ValueToCompare 与一个常数值进行比较,OP 想与另一个下拉列表的值进行比较。
【解决方案2】:

您必须指定ControlToCompareOperator

<asp:CompareValidator 
   ID="cvEndYear2" Operator="GreaterThan" runat="server" CssClass="text-danger" 
   ValidationGroup="Save" 
   ControlToValidate="ddlEndYear" Display="Dynamic" 
   ControlToCompare="ddlStartYear"
   Operator="GreaterThanEqual"
   Type="Integer"
   ErrorMessage="The end year must be greater/equal the start year" SetFocusOnError="true">
</asp:CompareValidator>

【讨论】:

  • 使用ControlToCompareValueToCompare,不能同时使用
  • @EhsanSajjad:谢谢。但是,msdn mentions 表示:“如果同时设置了这两个属性,则 ControlToCompare 属性优先”。由于 OP 想要比较两个控件,他必须使用 ControlToCompare。对吗?
  • @TimSchmelter 感谢您的澄清,不知道这一点,现在记住了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多