Tôi có một trang với một CompareValidator vào nó:lỗi không liên tục với CompareValidator - bất động sản ValueToCompare là ""
<asp:textbox id="txtResponseDate" runat="server" />
<asp:requiredfieldvalidator id="rfvResponseDate" runat="server"
controltovalidate="txtResponseDate"
display="Dynamic"
errormessage="Date is required."
setfocusonerror="true">
</asp:requiredfieldvalidator>
<asp:comparevalidator id="cmvDate" runat="server"
controltovalidate="txtResponseDate"
display="Dynamic"
errormessage="Date must not be before today."
operator="GreaterThanEqual"
setfocusonerror="true"
type="Date">
</asp:comparevalidator>
Trong đoạn mã phía sau, chúng ta thiết lập thuộc tính ValueToCompare như vậy:
If Not IsPostBack Then
cmvDate.ValueToCompare = DateTime.Now.ToString("d")
End If
Không liên tục (chúng tôi không thể phân biệt mẫu), chúng tôi nhận được lỗi sau:
"Giá trị '' của thuộc tính ValueToCompare của 'cmvDate' không thể chuyển đổi thành loại 'Ngày'."
Với một chồng gọi của:
at System.Web.UI.WebControls.CompareValidator.ControlPropertiesValid()
at System.Web.UI.WebControls.BaseValidator.get_PropertiesValid()
at System.Web.UI.WebControls.BaseValidator.Validate()
at System.Web.UI.Page.Validate()
at System.Web.UI.Page.Validate(String validationGroup)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
Suy nghĩ đầu tiên của tôi là một cái gì đó kỳ lạ với định dạng ngày, nhưng chúng ta đang sử dụng ngày Anh, lỗi cuối cùng là vào ngày 18 tháng 7, do đó ValueToCompare được thiết lập để 18/07/2011. Tôi đã thiết lập này bằng tay bằng cách sử dụng trình gỡ lỗi, và nó đã làm việc tốt. Bất kỳ ai có ý tưởng sáng sủa nào về việc tại sao điều này có thể xảy ra?
- Tôi đã kiểm tra mã - không có nơi nào khác đang được đặt.
- Sử dụng trình gỡ lỗi, tôi đã kiểm tra kỹ lúc đăng lại và như mong đợi, giá trị thuộc tính này được giữ lại.
'CurrentCulture' của bạn là gì? – VMAtm
Đã nhận được văn bản sau đó lỗi xảy ra? – VMAtm
@VMAtm - Văn hóa của chúng tôi là ở Vương quốc Anh và không, chúng tôi không có văn bản. – Paddy