- - PR -
VB .NET でダイアログ表示が・・・
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-23 16:02
お世話になっております。
表題の件についてご教授お願いします。 ほぼ初心状態ですので、よろしくお願いします。 環境: WinXP 開発: VB .NET 2003 やりたいこと: WebForm1 ・・・ メイン画面 WebForm2 ・・・ ダイアログ(選択画面) WebForm1にボタンを配置し、押下イベントで、 WebForm2をモーダル管理して表示。 WebForm2で配置したDataGridにて対象データを選択。 WebForm2のDataGrid選択イベントにて、選択データの取得と WebForm2の廃棄(非表示かな)を行うつもり。 今の状況では、WebForm2のGridでの選択イベントが取得できない ため必要データの取得と、画面のクローズができません。さらに、 新しいブラウザが表示されて、「検索中のページは表示できません。・・・」 となります。 いろいろ調べた結果、確認ダイアログという考え方は、.NET VBだとないようなので、 VBコードから、JAVAコードのStringを作ってモーダル管理(WebForm1を親にした WebForm2)で表示しています。 しかし、Javaコードを生成してWebFormを表示すると、VB .NET側ではJavaを実行する ところまでが処理となり、WebForm2からの帰りイベントが取得できない状況です。 また、WebForm2でのDataGridのイベントも取得できないため、選択のために表示した 画面情報が取得できません。 以下は、VB .NETよりJAVAを呼び出す部分です。 strJScript = "<SCRIPT Language=""Javascript"">" & _ "var rtnVal=showModalDialog('WebForm2.aspx?PROJECT_CODE=" & strProjectCode & "','','dialogWidth:440px; dialogHeight:670px');" & _ "</SCRIPT>" Me.Controls.Add(New LiteralControl(strJScript)) 質問1: みなさんは、選択ダイアログをどのように実装されているのでしょうか? 質問2: 上記方法で実現できそうなものでしょうか? 以上、説明が不足しているかもしれませんがよろしくお願いします。 | ||||||||
|
投稿日時: 2006-01-23 18:06
JavaScript が絡む部分なのでいろいろな実装方法があると思いますが、
僕の場合は次のように実装しています。 WebForm1 : WebForm1 のボタンクリック時に WebForm2 を開く WebForm2 : 選択された値を WebForm1 のフィールドに書き込む WebForm2 : WebForm2 を閉じる
これってどのタイミングでおきますか?
WindowsForm では MessageBox があります ASP.NET では confirm が確認ダイアログって感じかな # Java ではありません JavaScript です。 | ||||||||
|
投稿日時: 2006-01-23 18:18
ご教授ありがとうございます。
さっそく確認させていただきます! その前に下記の部分についてです。 >これってどのタイミングでおきますか? WebForm2のDataGrid中に配置した行選択用のハイパーリンクのボタンを クリックすると、DataGridのイベントは何も捕まえることができずに 「検索中のページは表示できません。・・・」 といわれます。 よって、ご教授いただきました、 「WebForm2 : 選択された値を WebForm1 のフィールドに書き込む」 ができなくてこまっています。 もしかすると開発言語をC#かJ#にしたほうが、開発効率があがるのでしょうか? | ||||||||
|
投稿日時: 2006-01-23 18:47
レンダーされたリンクボタンのリンク先はどういうURLになっていますか?
C#とVB.NETをやっていますが、そう変わらないとおもいますよ | ||||||||
|
投稿日時: 2006-01-23 22:09
モーダルダイアログは、自画面でポストとかできなかったはずです。
なので、グリッドでの選択時の動作をすべてクライアント側で完結させる 必要があると思います。 | ||||||||
|
投稿日時: 2006-01-23 22:37
こんばんは。
Webアプリの場合最終的な出力はHTMLですから、クライアント側の挙動に関しては JAVAだとできてVB.NETだとできないってことはまずないです。 #IEだとできてNNだとできない(またはその逆)ってことはありますが。 showModalDialogで開いたaspxがうまくPostBackできない件は下記が参考になるでしょう。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20782&forum=7
私の場合ですが、showModalDialogはIE限定のメソッドなので、 複数ブラウザをサポートするならダイアログを使わず親画面を遷移させます。 #window.openを使ったモーダレスな子画面は、制御がめんどくさいので #なるべく使いたくない IE限定の場合は上記URLの方法でPostBackを発生させた後、 hiddenフィールドに親画面に返したい値を埋め込み、 RegisterStartupScriptメソッドを使って window.returnValue = Form1.Hidden1.value; を実行させます。 | ||||||||
|
投稿日時: 2006-01-24 00:00
おおう、勉強になりました。
| ||||||||
|
投稿日時: 2006-01-26 13:33
まずは、書き込みが遅くなり申し訳ありませんでした。
いろいろ試してみたのと、業務が忙しくなり書き込みの タイミングを逃していました・・・ 皆様、ご教授ありがとうございました! ご教授いただきましたことをいろいろやってみました。 結果としてはOKだったのですが、動きや表示の状態などを 確認していまいちすっきりできなかった(見た目が)ので、 結局、フレーム内のWebFormをメイン画面とダイアログ画面と Visibleでコントロールすることにしました。 こちらのがまだ統制がとれているように見えるので・・・ ありがとうございました。大変勉強になりました! |
1