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

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

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

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

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

20180109_01

20180109_04

20180109_05

<1.スケジュール移動画面作成>

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

20180112_01

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

20180112_02

20180112_03

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

20180112_04

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

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

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

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

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

・ビュー一覧は、親スケジュール情報の「ViewsDataSource」から取得します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20180112_05

【サンプルプログラム】

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

20180109_04

20180109_05

20180112_06

20180112_07

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