Calendar Web サーバー コントロールの概要

更新 : 2007 年 11 月

Calendar Web サーバー コントロールを使用すると、選択可能な日付をカレンダーに表示し、特定の日付に関連付けられたデータを表示できます。

このトピックの内容は次のとおりです。

  • シナリオ

  • 機能

  • 背景

  • コード例

  • クラス リファレンス

シナリオ

Calendar Web サーバー コントロールを使用すると、以下の操作を行うことができます。

  • 日付の表示と選択   任意の年の任意の日付に移動できるカレンダーを表示します。SelectedDate プロパティを設定すると、コントロールで特定の日付を強調表示できます。特定の日付をクリックしたり、表示する月を変更したりして、特定の日付に移動することもできます。カレンダーは、週単位または月単位で複数の日付を選択できるように設定できます。

    Calendar コントロールによる 10 月の月表示
    Visual Studio WebApplication カレンダー

  • カレンダーのグリッドへの予約情報などの表示   Calendar コントロールでは、作業のリストや予定などの情報を日単位で詳細表示できます。この機能を使用すると、データベースから特定の日の情報を取得して、カレンダーに表示できます。

ページのトップへ

機能

Calendar コントロールを使用すると、以下の操作を行うことができます。

  • ユーザーが日付や日付の範囲を選択するときなどに、ユーザーとの対話をキャプチャします。

  • カレンダーの表示形式をカスタマイズします。

  • データベースの情報をカレンダーに表示します。

ページのトップへ

背景

Calendar コントロールは 1 か月分の日付 (計 6 週間) を一度に表示します。このコントロールがサポートしている日付の種類を次の表に示します。

日付の種類

説明

TodaysDate

既定では、サーバーの現在の日付に合わせて設定されます。ただし、異なるロケールの日付を正確に表示するように調整することもできます。

VisibleDate

この日付によって、カレンダーに表示する月が決まります。カレンダーでは表示を月単位で変更できるため、表示可能な日付を変更しても今日の日付への影響はありません。プログラムで表示可能日付を設定すると、月単位で表示を変更できます。

SelectedDate, SelectedDates

ユーザーが選択する日付または日付の範囲です。このコントロールでは、特定の日、週、または月を選択できます。また、日付が連続する場合に限って、複数の日付を選択できます。また、選択日付をプログラムで設定することもできます。この場合、連続しない複数の日付も選択できます。

Calendar コントロールは、DateTime オブジェクトに基づいているため、このオブジェクトで許可されているすべての日付をサポートします。実際には、西暦 0 ~ 9999 年の範囲のすべての日付を表示できます。

ASP.NET ページでは、Calendar コントロールは HTML テーブルとして表示されます。したがって、コントロールの一部のプロパティが、テーブルの書式指定に使用されます。以前のブラウザでは、これらのプロパティの一部がサポートされていないことがあります。このため、以前のブラウザでは利用できない書式もあります。

日付選択機能の有効化

既定では、カレンダーの特定の日付をクリックして選択できます。コントロールを読み取り専用カレンダーとして使用する場合は、日付選択機能を無効にできます。

日付選択機能が有効な場合は、カレンダーの日付ごとに LinkButton コントロールが配置され、クリックするとイベントが発生します。週選択または月選択を有効にすると、カレンダーの端にリンク欄が表示され、週を選択できます。

カレンダーの表示形式のカスタマイズ

カレンダーのプロパティを設定することによって、カレンダーの色、サイズ、テキストなどを変更できます。表示形式を変更する方法を次の表に示します。

カスタマイズ方法

説明

プロパティの設定

プロパティ設定によって、グリッド線を表示したり、週の開始曜日を変更したりできます。また、月や曜日の名前の表示形式を変更することもできます。

拡張スタイル プロパティの設定

Style オブジェクトから派生したプロパティを使用して、カレンダーの特定の要素の表示形式を設定できます。たとえば、現在の日付や、月の名前と移動ボタンを表示するタイトル バーなどの表示形式を設定できます。これらのスタイル プロパティは、カスケード スタイル シート対応のブラウザでサポートされています。CSS 対応でないブラウザでは、サポートされない表示スタイルもあります。

日単位の表示のカスタマイズ

コントロールが個別の日付を表示する際にはイベントが発生します。このイベントを処理することで、表示するためのストリームを変更できます。この方法は、日付の表示形式を変更する場合だけでなく、日単位で表示内容の変更を行う場合に便利です。詳細については、「方法 : Calendar Web サーバー コントロールにおける日単位のカスタマイズ」を参照してください。

Calendar Web サーバー コントロールとユーザーとの対話のキャプチャ

ユーザーが特定の日付または日付の範囲を選択すると、Calendar コントロールは SelectionChanged イベントを発生させます。ユーザーが別の月を表示したときには、VisibleMonthChanged イベントを発生させます。このイベントを処理するメソッドを作成することで、ユーザーが選択した日付を特定して適切な応答を行うことができます。たとえば、日付表示のカスタマイズを行います。

データベースから Calendar コントロールへの情報表示

一般的には、データベースから取得した情報をカレンダーに表示します。たとえば、データベースに格納されている情報を基にして、行事カレンダーが作成されることがよくあります。

Calendar コントロールはデータ バインディングを直接サポートしていません。つまり、カレンダー全体をまとめて 1 つのデータ ソースにバインドすることはできません。代わりに、コントロールの DayRender イベントを処理するメソッドを作成します。このイベントは、現在カレンダーに表示されている月のそれぞれの日が表示されるときに発生します。このイベントを処理するハンドラで、データ ソースから情報を抽出し、ブラウザに表示するストリームに追加できます。詳細については、「方法 : データベースで選択した日付を Calendar コントロールに表示する」を参照してください。

ユーザー補助

補助デバイスを使用しているユーザーにとってより使いやすくなるように、Calendar コントロールは UseAccessibleHeader という名前のプロパティをサポートしています。このプロパティに true (既定値) を設定すると、曜日名を含む列見出しが HTML th 要素を使用して表示されます。

ページのトップへ

コード例

ページのトップへ

クラス リファレンス

Calendar コントロールに関連するクラスの一覧を次の表に示します。

メンバ

説明

Calendar

コントロールのメイン クラスです。

CalendarDay

Calendar コントロールの日付を表すクラスです。

CalendarSelectionMode

Calendar コントロールで使用できる日付選択モードを表す列挙体です。

ページのトップへ

参照

処理手順

方法 : Calendar Web サーバー コントロールでプログラムによって日付を選択する

方法 : データベースで選択した日付を Calendar コントロールに表示する

その他の技術情報

ASP.NET Web サーバー コントロールの操作