比较asp.net中的Validator?

时间:2011-12-30 10:00:34

标签: asp.net

在Web应用程序中,我尝试使用compare验证器验证日期。但它是抛出错误,这是我的代码

<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>

错误是:

  

'CompareValidator1'的ValueToCompare属性的值''   无法转换为“日期”类型。

3 个答案:

答案 0 :(得分:2)

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

这将在页面加载时执行数据手册代码。

答案 1 :(得分:1)

您的Comapre验证器位于网格或转发器中,或者仅位于页面上。

如果它不在Grid中,那么你可以从后面的代码中给出ValueToCompare值。 ValueToCompare ='&lt;%#DateTime.Today.ToShortDateString()%&gt;'实际上并没有约束日期。你可以用火虫检查它。它不会呈现为日期,它会将您显示为字符串格式。所以从后面的代码中设置这个值。 使用此代码。

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

答案 2 :(得分:-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>