2010-07-26 9 views
5

Używam RangeValidator do sprawdzania poprawności wpisywania daty w polu tekstowym i działa poprawnie z domyślnym formatem daty, ale teraz chcę formatu daty w "dd/MM/rrr", ale jego generowanie excption w tym formacie daty. proszę podać mi rozwiązanie mój kod:Format daty w RangeValidator

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

w kodzie:

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"); 
} 

Odpowiedz

7

MinimumValue & MaximumValue należy ustawić w przypadku Page_PreRender i wydają się wymagać datę format jako "dd-MM-yy" ... zobacz ostatni wpis na 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 MinimumValue i MaximumValue powinny być YYYY/MM/DD

Sprawdź dokumentację tutaj: https://msdn.microsoft.com/en-us/library/ydez7ad7(v=vs.110).aspx

+0

do wniosku, że piszę chcę format daty, aby być 'dd/mm/yyyy' więc powinno to być wszystko, co powinno być dla twojej aplikacji. I twój link jest zepsuty – Malachi

+0

@Malachi: Nie. Minimalna wartość powinna zawsze mieć format rrrr/MM/dd. Walidator używa tego formatu do sprawdzania poprawności. Jest niezależny od kultury. –

+0

Gdzie to mówi? artykuł, z którym się łączyłeś, nie mówi nic o zakresach dat. – Malachi