2011-12-30 81 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