Wie wir Datenvalidierung auf asp.net verwendet? Datum kann nicht eingefügt werden, das größer als das aktuelle Datum ist.Datum Validierung
Antwort
Verwenden Sie die CustomValidator
löst Ihre Probleme einfach.
oder
Sie Javascript verwenden können Sie das Datum wie zu validieren, wie folgend
var myDate=new Date();
myDate.setFullYear(2010,0,14);
var today = new Date();
if (myDate>today)
{
alert("Today is before 14th January 2010");
}
else
{
alert("Today is after 14th January 2010");
}
Verwenden Sie ein CompareValidator. Die meisten Leute verwenden dies, um zwei in zwei Textboxen eingegebene Werte zu vergleichen, aber Sie können sie auch verwenden, um einen eingegebenen Wert mit einem festgelegten Wert zu vergleichen, wie in Ihrem Fall.
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
Type="Date"
runat="server"/>
In den Code hinter gesetzt Compare1.ValueToCompare = new DateTime(...);
und Compare1.Operator = ValidationCompareOperator.LessThanEqual;
Denken Sie auch daran: Sie sollten immer auf dem Server validieren sowie den Kunden, weil Clientside Validierung ist einfach auszuschalten oder umgangen . Ich würde vorschlagen, dass Sie sich dafür Fluent validation ansehen.
In JavaScript-Lösung,
Stellen Sie sicher, Stunden einzustellen, min, sec und Millisekunden auf 0, wenn Sie nur wollen, Daten vergleichen (das heißt Tag, Monat und Jahr). Funktion, um die oben erwähnten zu acheive ist wie folgt,
function f_tcalResetTime (d_date) {
d_date.setHours(0);
d_date.setMinutes(0);
d_date.setSeconds(0);
d_date.setMilliseconds(0);
return d_date;
}
Wenn Sie vergleichen Daten, javascript tatsächlich date.valueOf Funktion hinter den Kulissen nennen, die die Anzahl der Millisekunden seit Mitternacht 1. JANUAR vergangen zurückkehrt, 1970.
gutes Datum Kumpel. Es gibt viele Optionen. Sie können entweder das benutzerdefinierte Validator-Steuerelement von asp.net, JavaScript usw. verwenden. Eine bessere Option wäre es, den maskierten Editier-Extender des AJAX Control Toolkits mit maskiertem Validierer zu verwenden. Sie können Bereiche, benutzerdefinierte Maske (JJJJ/MM/TT) und sogar eine leere Feldnachricht damit angeben.
Stellen Sie sicher, dass Sie die Kultur Ihrer Website richtig eingestellt haben, damit Sie die Daten richtig validieren können. http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/MaskedEdit/MaskedEdit.aspx
Prost.
<ajaxToolkit:MaskedEditValidator
ControlExtender="MaskedEditExtender2"
ControlToValidate="TextBox2"
IsValidEmpty="False"
MaximumValue="12000"
EmptyValueMessage="Number is required"
InvalidValueMessage="Number is invalid"
MaximumValueMessage="Number > 12000"
MinimumValueMessage="Number < -100"
MinimumValue="-100"
EmptyValueBlurredText="*"
InvalidValueBlurredMessage="*"
MaximumValueBlurredMessage="*"
MinimumValueBlurredText="*"
Display="Dynamic"
TooltipMessage="Input a number: -100 up to 12.000"/>
Tagging die Frage mit einer Technologie in Ihrer Antwort vorgeschlagen ist ein bisschen unhöflich ... – cjk
Sorry, ist es als unhöflich? Ich dachte, es wäre hilfreich. Auf diese Weise kann der Benutzer leicht andere Fragen zu dieser Technologie finden. Auch andere Leute, die diese Technologie benutzen, können diese Frage finden und Hilfe anbieten. Ich dachte, ich wäre hilfsbereit. Gibt es einen Community-Beitrag zu dem, was als unhöflich angesehen wird? Ich bin froh, die Tags zu entfernen, wenn andere Benutzer den Kommentar von @ ck als einen großartigen Kommentar markieren. Wahrscheinlich ist es besser, das zu tun, als einen eigenen Kommentar hinzuzufügen, da das Thema dieser Frage nicht behandelt wird. –