ASP.NET 入門

ホーム > カレンダー (Calendar) > カレンダーの使い方 - 初期値の設定と選択日付の取得

カレンダーの使い方 - 初期値の設定と選択日付の取得

ここではカレンダーコントロールを使って、カレンダー内の日付をクリックすると、クリックした日付がラベルに表示される、というサンプルコードを作ります。

ASP.NET カレンダーコントロール

ここでは初期値となる日付の設定、および、ユーザーのクリックに応じて、その値を取り出し、ラベルに設定する、という動作を行っています。

Visual Web Developer での開発例

Toolbox から Calendar を選択して、Web フォームにドロップします。

ASP.NET カレンダーコントロール

また、この例では選択した日付をラベルに表示しますから、カレンダーコントロールの下にラベルもひとつ配置してください。

この状態でいきなりプログラムを実行してみましょう。すると次のようになるはずです。

ASP.NET カレンダーコントロール

初期状態で日付が選択されていないことがわかります。また、日付をクリックしても、ポストバックは発生するものの何も起きません。 (コードを書いていないので当然ですけどね)

そこで、まず初期状態で日付が選択されるように変更しましょう。

選択日付の設定

選択日付は SelectedDate プロパティに設定します。 初期値として日付を選択状態にするには、次のように Page_Load イベント(など)で SelectedDate に DateTime の値を設定します。

     protected void Page_Load(object sender, EventArgs e)
     {
         if (!IsPostBack)
         {
             Calendar1.SelectedDate = Calendar1.TodaysDate;
         }
     }

上のコードでは TodaysDate プロパティの値を SelectedDate に設定していますが、 TodaysDate プロパティには特に何も設定しなければ、初期値としてサーバーのその時点での日付がセットされています。

上のコードを追加して実行すると、次のように日付が選択状態になります。

ASP.NET カレンダーコントロール

選択日付の取得

では、カレンダーの日付をクリックしたときに、クリックした日付を取得する方法をみてみましょう。

カレンダーの日付をクリックしたときには、SelectionChanged イベントが発生します。 このイベントハンドラを設定します。

ASP.NET カレンダーコントロール

カレンダーコントロールの SelectedDate プロパティには選択された日付が、DateTime 型で保存されていますから、 それを好きな形で文字列に変換してラベルに設定すれば OK です。

ここでは、コードは次のようにしました。

     protected void Calendar1_SelectionChanged(object sender, EventArgs e)
     {
         Label1.Text = Calendar1.SelectedDate.ToString("m");
     }

これで日付を選択すると、ラベルに日付が設定されます。

ホーム > カレンダー (Calendar) > カレンダーの使い方 - 初期値の設定と選択日付の取得