2012-05-03 6 views
-1

私は2つのテキストボックス、txtStartDate、txtEndDateを持っています。これはユーザーが日付(dd/mm/yyyy)の日付を選択できるようにします。私は、これらの2つのユーザー選択日付の間の日数が45日以内かどうかを確認するバリデーターを作成できる必要があります。レンジや比較のようなバリデータコントロールを使用することはできますか?またはカスタムバリデータを作成する必要がありますか?どんな例であれ非常に役に立ちます。バリデーションコントロール2日間の日数

+0

私は自分の答えを削除することにしました。なぜなら、小さな試行でも貢献するのは怠け者だからです。あなたがそれを変えなければ、あなたはこの種のサイトや何にも悪いことではありません。 –

答えて

0

は、このブロックを試してみてください:

Dim st As String = txtClientSerStartTime.Text 
Dim et As String = txtClientSerEndTime.Text 
Dim time1 As DateTime 
DateTime.TryParse(st, time1) 
Dim ts1 As New TimeSpan(time1.Hour, time1.Minute, time1.Second) 

Dim time As DateTime 
DateTime.TryParse(et, time) 
Dim ts As New TimeSpan(time.Hour, time.Minute, time.Second) 

Dim dur As TimeSpan = ts - ts1 
Dim unit As Decimal = dur.Hours 

If unti = 45 Then 
    'do something' 
Else 
    'do something' 
End If 
+0

このコードブロックはどこに行きますか? –

1

あなたはCustomValidatorを使用することができます。

<asp:CustomValidator id="StartEndDiffValidator" 
     ValidateEmptyText="true" 
     ClientValidationFunction="StartEndValidate" 
     OnServerValidate="StartEndValidate" 
     Display="Dynamic" 
     ErrorMessage="Timespan between start and end must be exactly 45 days" 
     runat="server"/> 

This answerClientValidationFunctionにあなたを導くでしょう。

も常にサーバー側の検証を実装:

void StartEndValidate(object source, ServerValidateEventArgs args) 
{ 
    DateTime startDate; 
    DateTime endDate; 
    bool isStartDate = DateTime.TryParse(txtStartDate.Text, out startDate); 
    bool isEndDate = DateTime.TryParse(txtEndDate.Text, out endDate); 
    if(isStartDate && isEndDate) 
    { 
     int days = (endDate - startDate).Days; 
     args.IsValid = days == 45; 
    } 
    else 
    { 
     args.IsValid = false; 
    } 
} 

ます。また、日付が両方に入力されたことを確認するためにValidationCompareOperator.DataTypeCheckType =日にOperatorプロパティを設定してCompareValidatorsを使用することができます。

+0

詳細な例を教えていただければ、CustomValidatorの外観やJavascriptの機能のように非常に役立ちます。 –

+0

@ScrumMaster:カスタムバリデーターのマークアップとサーバーの検証の詳細を追加しました。私は現在、可能なJavaScriptの実装を表示する時間ではありません。私が提供したリンク([jQuery date input](http://jonathanleighton.com/projects/date-input/#date-formatting)または[Matt Kruse date functions](http:// www .mattkruse.com/javascript/date /))。 –