none
エラーチェック(コードビハインド) => Modal画面起動(js) => Modal画面で対象選択の後Close => 取得内容を元画面に表示の流れは可能でしょうか。 RRS feed

  • 質問

  • 質問させて下さい。

    ASP.NET の開発にあたりタイトルの様な制御は可能でしょうか。

    現在想定している内容は以下となります。
    ①ボタンのクリックをトリガとして処理を行う。
    ②親画面の画面に表示されている明細情報を子画面(Modal画面)に受け渡したい。
    ③子画面起動前に親画面のエラーチェックを行い、エラーがある時は子画面を表示しない。
    ④子画面起動時に②で受け渡した情報を取得したい。
    ⑤子画面で確定(ボタンクリック)したら、子画面の情報を親画面に受け渡したい。
      ※同時に子画面終了
    ⑥子画面が終了したら、⑤で受け渡した情報を親画面に表示したい。

    可能であれば、方法論など頂けるとありがたいです。

    以上、宜しくお願いします。

    2012年2月17日 6:30

回答

  • 試していませんが、以下のような流れを思い浮かべました。

    1.親画面のコードビハインドで、親画面のOnLoad時に実行されるjsを仕込み、そのjsで子画面を起動する。

    2.子画面では呼び出し元のWebフォーム、つまり親画面をContext.Handler経由で取得し、そこに値をセット。

    3.子l画面を閉じる。

    ただし、ModalにできるのはIE限定だったような記憶があります。今はどうなっているかわかりませんが・・・


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/


    2012年2月17日 7:22
    モデレータ

すべての返信

  • タイトルにだけ js の文字がありますが、この意図は?

    また質問文中の「子画面」などの「画面」とはブラウザウィンドウを指しますか? それともHTML / CSSでそれっぽく描いたダイアログですか?

    1~6の中でWebサーバーとのやり取りを想定している部分はどこかありますか? Noならもしかして全部JavaScriptでASP.NETとは無関係だったりしますか?

    2012年2月17日 7:11
  • わかりにくくてすいません。

    js は JavaScript と読み替えて下さい。

    画面は全てウザウィンドウです。

    >1~6の中でWebサーバーとのやり取りを想定している部分はどこかありますか?

    Webサーバーとのやり取りという問いに合致するかわかりませんが、

    JavaScriptで行おうとしているのは子画面のOpenだけです。

    ちなみに、受け渡したいのは自作VOクラスのリストです。

    2012年2月17日 7:18
  • 試していませんが、以下のような流れを思い浮かべました。

    1.親画面のコードビハインドで、親画面のOnLoad時に実行されるjsを仕込み、そのjsで子画面を起動する。

    2.子画面では呼び出し元のWebフォーム、つまり親画面をContext.Handler経由で取得し、そこに値をセット。

    3.子l画面を閉じる。

    ただし、ModalにできるのはIE限定だったような記憶があります。今はどうなっているかわかりませんが・・・


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/


    2012年2月17日 7:22
    モデレータ
  • 気付くのが遅れてスイマセン。

    解決しました。

    ちなみに、

    1.ボタンの_Clickイベント

     1-1.エラーチェックし、エラーが無ければSESSIONに受け渡すリストをセット。

     1-2.RegisterStartupScriptでJavaScriptから子画面を起動。

    2.子画面の起動

     2-1.起動時にSESSIONから1-1.のリストを取得

     2-2.終了時にSESSIONに受け渡すリストをセット

    3.Page_Loadイベント

     3-1.SESSIONから2-2.のリストを取得して処理。

    こんな感じです。

    2012年2月17日 12:13
  • シナリオがよく分かってないのでハズレかもしれませんが・・・

    ASP.NET AJAX Control Toolkit の Modalpopup を使ってはいかが
    ですか。

    ModalPopup Demonstration
    http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx

    これなら見かけは 2 画面ながら 1 ページで処置するので、ポスト
    バックしてサーバー側で親子間の情報の受渡しは容易にできます。

    2012年2月17日 12:14
  • 先のレスが前後してしまいました。

    すでに解決済みとのことなので、余計なお世話かもしれませんが・・・

    > 1-2.RegisterStartupScriptでJavaScriptから子画面を起動。

    スクリプトで開くとポップアップブロックに引っかかりませんか?

    また、質問に「子画面(Modal画面)」と書いてあったので、showModalDialog
    メソッドを使ったと想像していますが、showModalDialog はブラウザ依存で
    (最近は IE 以外でも開くようですが)、かつ、「showModalDialog」「問題」
    でググってみると分かるようにいろいろ問題も多いです。その点は大丈夫で
    すか?

    といって、window.open で普通に 2 画面開くと、2 画面同時に操作できてし
    まうので、予期せぬユーザーの操作に対応できないという問題がありますが。

    というわけで、くどいようですが、1 ページで ModalPopup を使うことをお
    勧めします。

    2012年2月18日 5:36