「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>ダイアログ表示機能]] * 目次 [#h170136f] #contents *概要 [#d8492951] -業務画面をモーダル・ダイアログで表示する機能 -サーバ側でShowModalScreenメソッドを呼び出す。 -すると、クライアント側でwindow.showModalDialogを呼出し、ダイアログを表示する。 -なお、クライアント側からJavaScriptなどで直接起動したい場合は、~ GetScriptToShowModalScreenメソッドを使用して、起動JavaScriptを生成できる。 -また、以下の3つのメソッドを使用して、「業務モーダル ダイアログ」を閉じることができる。 --CloseModalScreenメソッド~ 現在の画面を閉じる。親画面に戻った際に、ポストバックを実行し後処理を実行する。 --CloseModalScreen_NoPostbackメソッド~ 現在の画面を閉じる。親画面に戻った際に、ポストバックをせず後処理を実行しない。 --CloseModalScreen_WithAllParentメソッド ---ルートの画面まで、全てのダイアログ画面を閉じる。 ---ルートの画面に戻った際に、ポストバックを実行し後処理を実行する。 ---Modernブラウザ対応版では、このAPIは機能しないので注意する。 **Modernブラウザ対応 [#l5491c1f] 最新版では、IE以外のブラウザでは擬似ダイアログ(Window.Open)を使用するようになった。 **処理方式概要 [#s5d38d65] 業務結果を親画面側のサーバサイドのイベントハンドラで処理可能になっている。~ (このため、クライアントサイド・スクリプトを使用せずにダイアログ処理が可能) -ポストバックで閉じられた場合、「業務モーダル ダイアログの後処理メソッド」(UOC_ModalDialog_End)が、呼び出される。 -この処理は、「画面コード親クラス1」のUOC_ModalDialog_Endメソッドを、「[[画面コードクラス>モジュール構成]]」でオーバーライドして実装する。 -ただし、CloseModalScreen_NoPostbackメソッドで「業務モーダル ダイアログ」を閉じた場合、後処理は実行されない。 -[[ボタン履歴情報記録機能]]により、引数から、親画面で[x]ボタン、子画面で[y]ボタンが押されたことを確認できる。 #ref(Business_Dialog.png,left,nowrap,業務モーダル・ダイアログ) *注意 [#m05aa985] **DialogFrame.htm → DialogLoader.htm [#g90f7ebc] showModalDialog()メソッドで表示したダイアログ画面で、PostBackを可能にするための対策として、~ DialogFrame.htm → DialogLoader.htm経由で業務モーダル・ダイアログをロードしている。 **モーダルとモードレス画面の動作の違い [#gaf2aec3] showModalDialogで表示された業務モーダル・ダイアログは、 -UI上のテキストのカット&ペーストが出来なかったり -ダウンロードなどを行うと、親画面とUIが異なるケース 等があるので、この機能を利用する際は注意してください。 *関連 [#zade135c] -[[IE11対応(ダイアログ表示機能)の差分取込の方法]]