1

デザインでは、2つのテキストボックス、2つの画像ボタン、および両方の画像ボタンのクリックイベント用の1つのカレンダーがあります。ページの読み込みでは、両方のテキストボックスに今日の日付が表示されます。Pag​​e_loadは次のようになります。

txtfrdate.Text = Convert.ToDateTime(Today()).ToString("dd/MM/yyyy")
txttodate.Text = Convert.ToDateTime(Today()).ToString("dd/MM/yyyy")

今私はtxttodateの値だけを変更しています(todateはfrom dateより大きい)そしてクリックボタンメッセージは「FromDateはtodateより大きいはずです」と表示するはずです私はimagebutton1と2クリックイベントを次のように書きました

Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click
  Calendar1.Visible = True
  Calendar1.SelectedDates.Clear()
  Session("click") = 1
End Sub

Protected Sub ImageButton2_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton2.Click
    Calendar1.Visible = True
    Calendar1.SelectedDates.Clear()
    Session("click") = 2
End Sub

とカレンダーselectionchangedイベントで

Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged
    Select Case (Session("click"))
        Case 1 : txtfrdate.Text = Convert.ToDateTime(Calendar1.SelectedDate.ToShortDateString).ToString("dd/MM/yyyy")
            Session("fd") = Calendar1.SelectedDate
        Case 2 : txttodate.Text = Convert.ToDateTime(Calendar1.SelectedDate.ToShortDateString).ToString("dd/MM/yyyy")
            Session("td") = Calendar1.SelectedDate
    End Select
    Calendar1.Visible = False

    Label4.Visible = False
End Sub

次のように表示クリックボタンをクリックした後、日付を確認しています

If txtfrdate.Text = "" Then
    Label4.Visible = True
    Label4.Text = "Select From Date"
ElseIf txttodate.Text = "" Then
    Label4.Visible = True
    Label4.Text = "Select To Date"
ElseIf txtfrdate.Text > txttodate.Text Then
    Label4.Visible = True
    Label4.Text = "From Date Must be Smaller than To Date"

実際、私の問題は、txttodateのみを変更し、todateがfrom dateよりも大きいのに、Fromdateがtodateよりも大きいはずであるというメッセージが表示されている場合です。

From Date: 31/08/2012  - i am not changing current date during page load
To Date: 29/09/2012 - changing by selecting the calendar message is showing

開始日は終了日よりも小さくする必要があります

よろしくお願いします

4

1 に答える 1

1

あなたの質問を完全に理解したかどうかはわかりませんが。そして、2つの文字列を比較することを意図しているとは思いませんか? txtfrdate.Text > txttodate.text文字列値を比較し、dateTime オブジェクトを比較しません!

この例を要件に合わせて調整し、dateTime 値を確認してください。

    DateTime dtFrom = DateTime.Now;
    DateTime dtTo = DateTime.Now.Subtract(new TimeSpan(5, 0,0,0));

    if (dtFrom > dtTo)
    {
        Debug.WriteLine("Invalid To-Date");
    }
    else
    {
        Debug.WriteLine("OK");
    }
于 2012-08-31T10:20:01.960 に答える