2017-12-07 26 views
0

私はASPでnoobです。私はASPカレンダーから選択した日付を取ってテキストボックスなどに保存して、2番目の選択された日付と比較できるようにしていますより大きい。 1つのカレンダーを使用している間は可能かどうかはわかりません。私は試みたが、比較のために最初の日付コレクションを保存する方法を知らない。私は両方の方法を試みたが、悲惨なことに失敗した。私は検索をしましたが、彼らは私が知らないjavascript、javaや他の言語を使用しています。ASPカレンダーで2つの日付を比較する

私がしたいこと: 私はユーザーから2つの入力日付を取ろうとしています。第1の日付が入力されたときに、何かを記憶し、次に、ユーザが第1の選択された日付の後の日付を選択することを確認する。エラーメッセージが返されない場合は

<asp:TextBox ID="response" runat="server" />      
           <asp:TextBox ID="caldate1" runat="server" /> 
           <asp:TextBox ID="caldate2" runat="server" /> 

           <asp:CompareValidator ID="calvalidae" runat="server" ControlToCompare="caldate1" ErrorMessage="Date should be later than first date" Type="Date" operator="GreaterThan" ValueToCompare="caldate2"></asp:CompareValidator> 
           <asp:Calendar ID="cal1" runat="server"></asp:Calendar> 
           <asp:Calendar ID="cal2" runat="server" SelectionMode="Day" OnSelectionChanged="cal1_SelectionChanged" ></asp:Calendar> 

//サーバーサイド

protected void cal1_SelectionChanged(object sender, EventArgs e) 
    { 
     caldate1.Text = cal1.SelectedDate.ToShortDateString(); 
     if (cal1.SelectedDate.Date > cal2.SelectedDate.Date) 
     { 
      caldate1.Text = "You selected "; 
      caldate1.Text += cal1.SelectedDate.ToShortDateString(); 
     } 
     else 
     { 
      caldate1.Text = "Select a valid date"; 
     } 

    } 
+0

の後ろに私は質問を理解する上で苦労しています。もっときれいになれますか? 達成しようとしていることは何ですか? 現在のコードで何が起こっていますか? –

+0

現在、何もありません。私はユーザーから2つの別々の入力日付を取ろうとしています。第1の日付が入力されたときに、何かを記憶し、次に、ユーザが第1の選択された日付の後の日付を選択することを確認する。エラーメッセージが返されない場合 –

+0

何も言わないときは、ブレークポイントが当たったり、アプリケーションが動作していません。 –

答えて

1

あなただけの背後にあるコードで日付を比較したい場合は

以下のマークアップ



を行います

  <asp:CompareValidator ID="calvalidae" runat="server" 
            ControlToValidate ="caldate1" ValueToCompare="text" ControlToCompare="caldate2" 
       ErrorMessage="Date should be later than first date" Type="Date" 
       operator="GreaterThan" ></asp:CompareValidator><br/>      
      <asp:Calendar ID="cal1" runat="server" OnSelectionChanged="cal1_SelectionChanged1"></asp:Calendar><br/>      
      <asp:Calendar ID="cal2" runat="server" SelectionMode="Day" OnSelectionChanged="cal2_SelectionChanged" ></asp:Calendar><br/>      
     </div> 

コードは

protected void cal1_SelectionChanged1(object sender, EventArgs e) 
    { 
     caldate1.Text = cal1.SelectedDate.ToShortDateString(); 
     IsValidDate(); 
    } 

    protected void cal2_SelectionChanged(object sender, EventArgs e) 
    { 
     caldate2.Text = cal2.SelectedDate.ToShortDateString(); 
     IsValidDate(); 
    } 


    private void IsValidDate() 
    { 
     response.Text = string.Empty; 
     if (cal1.SelectedDate > cal2.SelectedDate) 
     { 
      response.Text = "Date should be later than first date"; 
     } 
    } 
+0

ありがとう、私は文字通りちょうどこれに似た何かをして、それは働いた。とにかく1カレンダーを使用してそれを行うには、または2カレンダーを使用して、お互いにそれらを比較する必要がありますか? –

+0

フォーカスを当てているテキストボックスに基づいてテキストを切り替えることができます –

関連する問題