2010-07-26 63 views
5

Tôi đang sử dụng RangeValidator để xác thực ngày nhập vào hộp văn bản và làm việc tốt với định dạng ngày mặc định nhưng bây giờ tôi muốn định dạng ngày trong "dd/MM/yyy". xin vui lòng cung cấp cho tôi giải pháp mã của tôi:Định dạng ngày trong RangeValidator

trong trang aspx:

<asp:TextBox ID="txtrequiredby" runat="server" ></asp:TextBox > 
<cc1:CalendarExtender ID="txtrequiredby_CalendarExtender" Format="dd/MM/yyyy" 
runat="server" Enabled="True" TargetControlID="txtrequiredby" > 
</cc1:CalendarExtender > 

<asp:RangeValidator ID="rvreqby" runat="server" ErrorMessage="Required By Date 
Greater Than or Equal to current date" ControlToValidate="txtrequiredby" 
Display="Dynamic" Type="Date" ></asp:RangeValidator > 

trong codebehind:

rvreqby.MinimumValue = clsGeneral.FromSqlDate(DateTime.Now); 
rvreqby.MaximumValue = clsGeneral.FromSqlDate(DateTime.Now.AddYears(200)); 

public static string FromSqlDate(DateTime date) 
{ 
    return date.ToString("dd/MM/yyyy"); 
} 

Trả lời

7

MinimumValue & MaximumValue cần phải được đặt trong sự kiện Page_PreRender và dường như đòi hỏi ngày định dạng là "dd-MM-yy" ... xem bài đăng cuối cùng trên Rangevalidator Min Max Value error

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    RangeValidator1.MinimumValue = DateTime.Now.Date.ToString("dd-MM-yy"); 
    RangeValidator1.MaximumValue = DateTime.Now.Date.AddYears(90).ToString("dd-MM-yy"); 
} 
2

Format của MinimumValue và MaximumValue nên yyyy/MM/dd

Kiểm tra tài liệu ở đây: https://msdn.microsoft.com/en-us/library/ydez7ad7(v=vs.110).aspx

+0

cho ứng dụng mà tôi đang viết tôi muốn định dạng ngày là 'MM/dd/yyyy' vì vậy nó sẽ là bất cứ điều gì nó cần phải được cho ứng dụng của bạn. Và liên kết của bạn bị hỏng – Malachi

+0

@Malachi: Không. MinimimValue phải luôn ở định dạng yyyy/MM/dd. Trình xác thực sử dụng định dạng đó để xác thực. Nó độc lập với văn hóa. –

+0

Nó nói ở đâu? bài viết mà bạn đã liên kết không nói gì về Phạm vi ngày. – Malachi