*目次 [#a6f1767c]
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>ダイアログ表示機能]]

* 目次 [#h170136f]
#contents

*概要 [#d8492951]
-業務画面をダイアログに表示する機能。IEでのみ動作する。
-また、表示された業務画面でダウンロードなどを行うと、
親画面とUIが異なるケース等があるので、この機能を利用する際は注意してください。

**IE限定機能 [#y3db620a]
-業務画面をモーダル・ダイアログで表示する機能

-サーバ側でShowModalScreenメソッドを呼び出す。

-すると、クライアント側でwindow.showModalDialogを呼出し、ダイアログを表示する。

-なお、クライアント側からJavaScriptなどで直接起動したい場合は、~
GetScriptToShowModalScreenメソッドを使用して、起動JavaScriptを生成できる。

-また、以下の3つのメソッドを使用して、「業務モーダル ダイアログ」を閉じることができる。
--CloseModalScreenメソッド~
現在の画面を閉じる。親画面に戻った際に、ポストバックを実行し後処理を実行する。
--CloseModalScreen_NoPostbackメソッド~
現在の画面を閉じる。親画面に戻った際に、ポストバックをせず後処理を実行しない。
--CloseModalScreen_WithAllParentメソッド
---ルートの画面まで、全てのダイアログ画面を閉じる。
---ルートの画面に戻った際に、ポストバックを実行し後処理を実行する。
---Modernブラウザ対応版では、このAPIは機能しないので注意する。

**Modernブラウザ対応 [#l5491c1f]
最新版では、IE以外のブラウザでは擬似ダイアログ(Window.Open)を使用するようになった。

*詳細 [#l3b68f19]

**処理方式 [#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対応(ダイアログ表示機能)の差分取込の方法]] [#t7e5a7d0]
**[[モダンブラウザ対応(ダイアログ表示機能)の差分取込の方法]] [#b82315e7]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS