DevExpress の ASPxScheduler でのスケジュール登録画面作成(自作)です。

スケジュール登録画面作成(自作)するために下記の7手順が必要になります。

1.スケジュール登録画面作成
2.スケジュール登録画面で親情報(スケジュール)取得
3.スケジュール登録画面情報(項目)を親情報(スケジュール)に紐付設定
4.スケジュール登録画面情報(ボタン)を親情報(スケジュール)に紐付設定
5.親情報(スケジュール)でスケジュール登録画面設定
6.スケジュール登録コマンドクラス作成
7.親情報(スケジュール)でスケジュール登録処理設定

今回は「1」〜「5」までのサンプルを作成します。

現状の画面デザインはこのようになっています。

20180109_01

20180109_02

20180109_03

<1.スケジュール登録画面作成>

・プロジェクト右クリックから「追加」→「新しい項目」を選択します。

20180116_01

・テンプレートとして、「Web ユーザー コントロール」を選択します。

20180116_01

20180116_02

・各項目、ボタンのオブジェクトを配置します。
※ボタンの「AutoPostBack」は「OFF」設定

20180116_03

【WebUserControl2.ascx サンプルプログラム】

<2.スケジュール登録画面で親情報(スケジュール)取得>

・クラスの継承先を「System.Web.UI.UserControl」から「DevExpress.Web.ASPxScheduler.SchedulerFormControl」に変更します。

・「Public Overrides Sub DataBind()」のメソッドをオーバレイズさせて作成します。

・「DataBind」メソッド内で親スケジュール情報「Parent」を取得します。

・ラベル(項目)一覧は、親スケジュール情報の「LabelDataSource」から取得します。

・時刻の表示方法(ステータス)一覧は、親スケジュール情報の「StatusDataSource」から取得します。

・リソース(担当者)一覧は、親スケジュール情報の「ResourceDataSource」から取得します。

・各項目の初期値は親スケジュール情報から取得します。

・各ボタンのクリックイベントは親スケジュール情報から取得します。

【WebUserControl2.ascx.vb サンプルプログラム(VB.Net)】

<3.スケジュール登録画面情報(項目)を親情報(スケジュール)に紐付設定>

・「Protected Overrides Function GetChildEditors() As DevExpress.Web.ASPxEditBase()」のメソッドをオーバレイズさせて作成します。

・「GetChildEditors」メソッド内で必要な項目を親情報(スケジュール)に紐付設定します。
※ラベル情報は不要なので紐付から除外

【WebUserControl2.ascx.vb サンプルプログラム(VB.Net)】

<4.スケジュール登録画面情報(ボタン)を親情報(スケジュール)に紐付設定>

・「Protected Overrides Function GetChildButtons() As DevExpress.Web.ASPxButton()」のメソッドをオーバレイズさせて作成します。

・「GetChildButtons」メソッド内でボタンを親情報(スケジュール)に紐付設定します。

【WebUserControl2.ascx.vb サンプルプログラム(VB.Net)】

【WebUserControl2.ascx.vb サンプル全プログラム(VB.Net)】

<5.親情報(スケジュール)でスケジュール登録画面設定>

・「ASPxScheduler」の「OptionsForms」に「AppointmentFormTemplateUrl=”~/WebUserControl2.ascx”」を設定します。

20180116_04

【サンプルプログラム】

それでは、実行して初期設定動作確認を行います。

20180109_02

20180109_03

20180116_05

20180116_06

無事にスケジュールのスケジュール登録画面作成(自作)が出来ました。
※スケジュールの登録は、まだ動作しません。