asp.net でデータ検証をどのように使用したか? 現在の日付より後の日付を挿入することはできません。
4 に答える
CompareValidatorを使用します。ほとんどの人はこれを 2 つのテキストボックスに入力された 2 つの値を比較するために使用しますが、あなたの場合のように、入力された 1 つの値と設定された値を比較するためにも使用できます。
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox1"
Type="Date"
runat="server"/>
コードビハインドセットCompare1.ValueToCompare = new DateTime(...);
とCompare1.Operator = ValidationCompareOperator.LessThanEqual;
また、覚えておいてください:クライアント側の検証は簡単にオフにしたりバイパスしたりできるため、常にクライアントだけでなくサーバーでも検証する必要があります。これについてはFluent validationをご覧になることをお勧めします。
JavaScriptソリューションでは、
日付 (つまり、日、月、年) を比較するだけの場合は、時間、分、秒、およびミリ秒を必ず 0 に設定してください。上記を実現する機能は以下の通りです。
function f_tcalResetTime (d_date) {
d_date.setHours(0);
d_date.setMinutes(0);
d_date.setSeconds(0);
d_date.setMilliseconds(0);
return d_date;
}
日付を比較すると、JavaScript は実際に裏で date.valueOf 関数を呼び出し、1970 年 1 月 1 日の午前 0 時から経過したミリ秒数を返します。
を利用してCustomValidator
、問題を簡単に解決してください。
また
次のようにJavaScriptを使用して日付を検証できます
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");
}
良いデート相手。利用可能な多くのオプションがあります。asp.net のカスタム バリデータ コントロール、javascript などを使用できます。AJAX コントロール ツールキットのマスク エディット エクステンダをマスク エディット バリデータとともに使用することをお勧めします。範囲、カスタム マスク (yyyy/MM/dd)、さらには空のフィールド メッセージを指定できます。
日付を適切に検証できるように、Web サイトのカルチャを正しく設定してください。 http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/MaskedEdit/MaskedEdit.aspx
乾杯。
<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"/>