2016-05-24 7 views
3

私はここで見ましたが、私がしたいことを見つけることができませんでした。ASP.NET C#では、各ボタンの日付の日数を増やします。

ボタンのonclickイベントがあるだけで、ボタンをクリックするたびにラベルの日付値を任意の日数だけ増やしたいと考えています。 それで、その数は2日と言います。ボタンの現在のラベルの値が5/1/2016で、ボタンをクリックした場合は、2011年5月3日、2016年5月5日などとなります。最初のクリックでは更新を1回だけ行いますが、2回目のクリックでは更新できません。ここに私のコード

protected void NDateOn_Click(object sender, EventArgs e) 
    { 
     lblCurrentDate.Text = DateTime.Today.AddDays (2).ToString ("dd"); 
    } 

私私はそれが「今日」にするためにするために気にいらを持っているが、私は、私は事前に任意の助けを感謝し、ここ から何をすべきかわからない知っています。

+1

"私は、今日の"今日 "に数日を追加しています。結果をどこかに保存して、何日か追加しておきます。 –

+0

lblCurrentDate.Text = convert.ToDatetime(lblCurrentDate.Text)+ DateTime.Today.AddDays(2).ToString( "dd"); ..このようなもの –

答えて

0

あなたがビューステートのデータ、私は、これはあなたが

注役に立つことを期待する2

protected void Button1_Click(object sender, EventArgs e) 
     {    
      if (ViewState["datacount"] == null) 
      { 
       ViewState["datacount"] = 0; 
      } 
      ViewState["datacount"] = ((int)ViewState["datacount"]) + 2; 
      Label1.Text = DateTime.Today.AddDays((int)ViewState["datacount"]).ToString("dd"); 
     } 

することにより、各ボタンのクリックの増分を維持する必要があります複数のページで

+0

Prasad - これは完全に機能しました。正直言って私はviewstateの使用については考えていませんでした。 - ありがとう! – Tommy

+0

私の喜びの博士 –

4

問題は、毎回今日の日付に2日を追加してしまうことです。あなたがしたいことは、すでにそこに保存されている日付に2を加えることです。このようなことをしたい(警告:これをコンパイルしようとしなかった)。

lblCurrentDate.Text = DateTime.Parse(lblCurrentDate.Text).AddDays(2).ToString("MM/DD/YYYY"); 

ToString()に渡されるパラメータは、datetimeをフォーマットします。これを変更して、異なるフォーマットを得ることができます。あなたは月と年ではなく、曜日だけを保存したい場合は、もう少し作業をする必要があります。お役に立てれば。ビューステートデータは、同じページ内に維持することができ、維持することができます:

+0

@apomene良いキャッチ、ありがとう – Hill

+0

あなたに 'System.FormatException:Stringが有効なDateTimeとして認識されなかったというコードをテストする必要があります。 ' – Ansari

+0

@Ansariあなたの文字列がフォーマットされていない正しく。コンパイルして正しく実行する[ここには例があります](https://ideone.com/7MCOhf) – Hill

関連する問題