2011-12-30 70 views
0

在Web应用程序中,我尝试使用比较验证程序来验证日期。但它抛出的错误,这是我的代码在asp.net中比较验证器?

<asp:CompareValidator 
       ID="CompareValidator1" 
       runat="server" 
       Text="*" 
       Display="None" 
       ValidationGroup ="a" 
       ControlToValidate="txtValidate" 
       ValueToCompare='<%# DateTime.Today.ToShortDateString() %>' 
       Operator="GreaterThan" 
       Type ="Date" 
       ErrorMessage="Date Should Greater Than Todate"> 
</asp:CompareValidator> 

的错误是:“的ValueToCompare财产”

值“CompareValidator1” 不能转换为类型“日期”。

回答

2

在您的Page_Load方法中,请致电Page.DataBind()

这将在加载页面时执行数据绑定代码。

1

你的Comapre验证器,在网格或转发器或它只是在页面上。

如果它不在Grid中,那么你可以在后面的代码中给出ValueToCompare值。 ValueToCompare ='<%#DateTime.Today.ToShortDateString()%>'实际上不绑定日期。你可以用火虫检查它。它不按日期呈现,它会以字符串格式显示你。所以请将代码的代码放在后面。 使用此代码。

protected void Page_Load(object sender, EventArgs e) 
     { 
    CompareValidator1.ValueToCompare = DateTime.Today.ToShortDateString(); 
    } 
+0

查看输出把你的这样的代码:”>。 – 2011-12-30 10:22:43

+0

输出将在文本框中为“<%= DateTime.Today.ToShortDateString()%>”。 – 2011-12-30 10:23:05

-1

尝试'='而不是'#'。见here

<asp:CompareValidator 
       ID="CompareValidator1" 
       runat="server" 
       Text="*" 
       Display="None" 
       ValidationGroup ="a" 
       ControlToValidate="txtValidate" 
       ValueToCompare='<%= DateTime.Today.ToShortDateString() %>' 
       Operator="GreaterThan" 
       Type ="Date" 
       ErrorMessage="Date Should Greater Than Todate"> 
</asp:CompareValidator> 
+0

这不是问题。所有runat =“server”控件不直接使用<%= %>或<%# %>代码进行绑定。 – 2011-12-30 10:21:43

+0

检查此代码”>。它代表什么。 – 2011-12-30 10:22:07