2012-04-04 10 views
0

Ich versuche zu validieren, wenn das Datum gültig ist, was bedeutet, dass es nicht in der Zukunft und auch sicherstellen, dass es ein legitimes Datum ist, d.33/32/2012 ist nicht gültig. Was ich derzeit habe funktioniert nur um zu überprüfen, ob das Datum gültig ist, aber es funktioniert nicht, wenn ich das Datum in Zukunft platziere. Auch habe ich ein Problem, wenn jemand ein Datum wie 03/32/2012 eingibt, wird es sagen, dass es nicht gültig ist, aber sie können immer noch auf die Schaltfläche "Speichern" klicken und dann wird die Ausnahme auftreten. Was ist der beste Weg, dies zu erreichen?Datum Validierung mit ASP.NET Validator

Hier ist mein Code:

<asp:TextBox ID="tbDate" runat="server" Text=""></asp:TextBox> 
<asp:Image ID="imgCalendar" runat="server" ImageUrl="~/App_Themes/Sugar2006/images/Calendar_scheduleHS.png" ImageAlign="Middle" /> 
<asp:CalendarExtender ID="ce" runat="server" TargetControlID ="tbDate" PopupButtonID="imgCalendar" />   
<asp:MaskedEditExtender ID="mex" runat="server" 
         TargetControlID="tbDate" 
         Mask="99/99/9999" 
         MaskType="Date" 
         MessageValidatorTip="true" 
         OnFocusCssClass="MaskedEditFocus" 
         OnInvalidCssClass="MaskedEditError" /> 
<asp:MaskedEditValidator ID="mev" runat="server" 
         ControlToValidate="tbDate" 
         ControlExtender="mex" 
         Display="Dynamic" 
         InvalidValueMessage="This date is invalid!" Font-Bold="True" 
         ForeColor="#D50000" /> 
<asp:RequiredFieldValidator runat="server" ID="DReq" 
         ControlToValidate="tbDate" 
         Display="None" 
         ErrorMessage="A Date is required." ValidationGroup="vgMyGroup"/> 
<asp:ValidatorCalloutExtender runat="Server" ID="DReqE" 
         TargetControlID="DReq" 
         HighlightCssClass="validatorCalloutHighlight" /> 

Antwort

1

Ich habe die ValidationGroup auf die MaskedEditValidator gesetzt und das mein Problem behoben. Auch zu beheben, um zukünftige Daten nicht zuzulassen, habe ich Folgendes in der CS-Datei getan. Alle meine Probleme wurden gelöst. Vielen Dank. :)

0

Sie können auch den CustomValidator und Punkt ClientValidationFunction zu einem benutzerdefinierten JavaScript-Funktion verwenden.

Eine solche Funktion wie ±

Funktion validateField (Quelle, args) aussehen würde { args.IsValid = true; }

In Javascript können Sie Folgendes überprüfen verwenden, wenn ein Datum gültig ist ±

var timestamp = Date.parse(textBoxValue) 

if (isNaN(timestamp)==false) 
{ 
    var d = new Date(timestamp); 

} 

können Sie dann d zum aktuellen Datum vergleichen, um zu überprüfen, ob es in der Zukunft liegt.

+0

Hey vielen Dank für die Antwort. Ich habe den von Ihnen vorgeschlagenen Code hinzugefügt, aber dann werde ich immer noch nicht über den Fehler informiert. –

+0

Können Sie Ihre Frage mit Ihrem neuen Code aktualisieren? –

+0

Ich habe eine ValidationGroup = "vgMyGroup" zum MaskedEditValidator hinzugefügt, die den Benutzer nicht festschreiben lässt, wenn das Datum korrekt ist und das funktioniert ... Jetzt muss ich es nur noch funktionieren lassen, damit der Benutzer kein zukünftiges Datum eingeben kann tue, um auch Fehler zu geben. Es gibt einen Parameter auf dem MaskEditExtender, der ClientValidationFunction aufruft, aber es scheint nicht so, als würde er sogar das Javascript treffen ... –

Verwandte Themen