C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[19]: モーダルダイアログについて


(過去ログ 124 を表示中)

[トピック内 27 記事 (1 - 20 表示)]  << 0 | 1 >>

■73993 / inTopicNo.1)  モーダルダイアログについて
  
□投稿者/ テンテン (1回)-(2014/11/20(Thu) 17:24:52)

分類:[ASP.NET (VB)] 

初めまして
ASP.NETでモーダルダイアログを使おうとしております。

下記のサイトにいろいろと問題点と解決策が記載してありました。
http://d.hatena.ne.jp/atsukanrock/20100428/1272424835

ちょうど私が躓いていた箇所が上記サイトの問題点1の箇所になるのですがこちらの記載方法がいまいち分かりません。

親画面:親画面.aspx
子画面:子画面.aspx

各画面の情報が上記の場合、

親画面で下記のコードを使いモーダルダイアログを呼ぼうとしております。
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.showModalDialog('子画面.aspx',?????,'width=300,height=300');"
scriptStr += "</script>"

ClientScript.RegisterStartupScript(Me.GetType(), "親画面", scriptStr)

大変申し訳ございませんがどなたかご教授頂けますでしょうか。
引用返信 編集キー/
■73994 / inTopicNo.2)  Re[1]: モーダルダイアログについて
□投稿者/ WebSurfer (393回)-(2014/11/20(Thu) 18:32:10)
No73993 (テンテン さん) に返信

可能なら showModalDialog を使うのは止めませんか? 参考にされている記事を読ま
れても使うべきではないということが分かるのではないかと思いますが。

ASP.NET Web Forms アプリなら、Ajax Control Toolkit の ModalPopup を利用するこ
とをお勧めします。

どうしても showModalDialog ということでしたら、すみませんが私はお答えできない
ので、他の方の回答をお待ちください。

引用返信 編集キー/
■73995 / inTopicNo.3)  Re[2]: モーダルダイアログについて
□投稿者/ テンテン (2回)-(2014/11/20(Thu) 18:42:31)
No73994 (WebSurfer さん) に返信
> どうしても showModalDialog ということでしたら、すみませんが私はお答えできない
> ので、他の方の回答をお待ちください。
→今の処、showModalDialogを使用したいと思っております。
 私が躓いている箇所は回避できそうな感じがしますので…
 WebSurfer さん回答ありがとうございました。
引用返信 編集キー/
■73996 / inTopicNo.4)  Re[3]: モーダルダイアログについて
□投稿者/ WebSurfer (394回)-(2014/11/20(Thu) 18:55:23)
No73995 (テンテン さん) に返信

ひょっとして、質問者さんは以下の記事の「たいよう」さんと同一人物ですか?

http://bbs.wankuma.com/index.cgi?mode=al2&namber=73870

違っていたら失礼しました。
引用返信 編集キー/
■73999 / inTopicNo.5)  Re[4]: モーダルダイアログについて
□投稿者/ テンテン (3回)-(2014/11/20(Thu) 20:08:44)
No73996 (WebSurfer さん) に返信
> ■No73995 (テンテン さん) に返信
>
> ひょっとして、質問者さんは以下の記事の「たいよう」さんと同一人物ですか?
>
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=73870
>
> 違っていたら失礼しました。
→違います。
 たいようさんのコードを少し参考にしたため、勘違いしてしまったのでしょうか。
 私も参考にしたことを記載しておけばよかったですね。
 申し訳ございませんでした。
引用返信 編集キー/
■74011 / inTopicNo.6)  Re[1]: モーダルダイアログについて
□投稿者/ もりお (29回)-(2014/11/22(Sat) 15:10:46)
No73993 (テンテン さん) に返信

リンク先見ますと、開く側のwindowオブジェクトを渡せばいいですよーとのことですので、
windowでよいのでないでしょうか。

scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"

引用返信 編集キー/
■74031 / inTopicNo.7)  Re[2]: モーダルダイアログについて
□投稿者/ テンテン (4回)-(2014/11/25(Tue) 09:11:33)
No74011 (もりお さん) に返信
> ■No73993 (テンテン さん) に返信
>
> リンク先見ますと、開く側のwindowオブジェクトを渡せばいいですよーとのことですので、
> windowでよいのでないでしょうか。
>
> scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"
→ご連絡が遅くなってしまい申し訳ございません。
 scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"
 も試してみたのですが子画面を閉じたときに親画面側でポストバックがかかりませんでした…
 こちらの記載方法でポストバックがかかるかもう一度調べてみたいと思います。
引用返信 編集キー/
■74032 / inTopicNo.8)  Re[3]: モーダルダイアログについて
□投稿者/ ?e???e?? (1回)-(2014/11/25(Tue) 11:25:04)
>  scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"
>  も試してみたのですが子画面を閉じたときに親画面側でポストバックがかかりませんでした…
>  こちらの記載方法でポストバックがかかるかもう一度調べてみたいと思います。
→先程の記載に間違いがありました。
 Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"
scriptStr += "</script>
ClientScript.RegisterStartupScript(Me.GetType(), "子画面", scriptStr)

で子画面を開き子画面側で

Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.opener.form1.submit();"
scriptStr += "window.close();"
scriptStr += "</script>"

ClientScript.RegisterStartupScript(Me.GetType(), "親画面", scriptStr)

で閉じたときに『0x800a138f - JavaScript 実行時エラー: 未定義または NULL 参照のプロパティ 'form1' は取得できません』のエラーが出力されました。
ですのでポストバック云々の前に処理が正常に通りませんでした。

引用返信 編集キー/
■74033 / inTopicNo.9)  Re[4]: モーダルダイアログについて
□投稿者/ テンテン (5回)-(2014/11/25(Tue) 11:54:09)
?e???e??はテンテンです。
名前を変えるのを忘れてしまいました。
申し訳ございません。
引用返信 編集キー/
■74035 / inTopicNo.10)  Re[4]: モーダルダイアログについて
□投稿者/ もりお (30回)-(2014/11/25(Tue) 20:18:42)
No74032 (テンテン さん) に返信

リンク先を見ますと、渡された値を参照するには、window.dialogArgumentsプロパティを使います
とのことですので、

子画面側は

scriptStr += "window.dialogArguments.form1.submit();"

これでいけないですかね。

引用返信 編集キー/
■74050 / inTopicNo.11)  Re[5]: モーダルダイアログについて
□投稿者/ テンテン (6回)-(2014/11/26(Wed) 11:50:24)
No74035 (もりお さん) に返信
> ■No74032 (テンテン さん) に返信
>
> リンク先を見ますと、渡された値を参照するには、window.dialogArgumentsプロパティを使います
> とのことですので、
>
> 子画面側は
>
> scriptStr += "window.dialogArguments.form1.submit();"
>
> これでいけないですかね。
→もりおさん回答ありがとうございます。

下記情報で行ってみましたがダメでした…

親画面
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"
scriptStr += "</script>
ClientScript.RegisterStartupScript(Me.GetType(), "子画面", scriptStr)

子画面
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.dialogArguments.form1.submit();"
scriptStr += "window.close();"
scriptStr += "</script>"

上記を実行し、子画面の閉じるボタンを押下した時に下記のエラーが出力されました。
0x800a138f - JavaScript 実行時エラー: 未定義または NULL 参照のプロパティ 'form1' は取得できません

一応'form1'の箇所に親画面の画面名や子画面の画面名等を入れてみましたが同様のエラーが出力されました…

引用返信 編集キー/
■74057 / inTopicNo.12)  Re[6]: モーダルダイアログについて
□投稿者/ もりお (31回)-(2014/11/26(Wed) 19:56:02)
No74050 (テンテン さん) に返信

あら。そうしますとあれですね。あれです。はい。

状況を切り分ける必要がありそうですね。

子画面から親画面のform1を参照できないみたいです。
これがいま判明していることで、

切り分けたいのは、
子画面から親画面のwindowオブジェクトを参照できないか、
または、親画面でform1を参照できないか、
といったところですね。

確認の方法はalert関数で当該オブジェクトを出力すればわかります。

子画面の方で
alert(window.dialogArguments)
で出力してみて
objectと出力されれば、子画面から親画面のwindowオブジェクトを参照できています。
nullやundefinedと出力されれば、子画面から親画面のwindowオブジェクトを参照できていません。

親画面の方で
alert(window.form1)
で出力してみて
objectと出力されれば、親画面のform1を参照できています。
nullやundefinedと出力されれば、親画面のform1を参照できていません。

あとは、この結果に応じて策を講じればよいかと思います。

windowがNGで、form1がOKならば、
windowオブジェクトの参照の仕方を見直す必要があります。

windowがOKで、form1がNGならば、
form1の参照の仕方を見直す必要があります。

windowがOKで、form1がOKならば、
子画面から親画面のform1へのアクセスの仕方を見直す必要があります。

windowがNGで、form1がNGならば、
困ります!


こんな感じですかね。
まずは状況を切り分けてみてはいかがでしょうか。
引用返信 編集キー/
■74060 / inTopicNo.13)  Re[7]: モーダルダイアログについて
□投稿者/ テンテン (7回)-(2014/11/27(Thu) 10:19:49)
No74057 (もりお さん) に返信
> ■No74050 (テンテン さん) に返信
>
> あら。そうしますとあれですね。あれです。はい。
>
> 状況を切り分ける必要がありそうですね。
>
> 子画面から親画面のform1を参照できないみたいです。
> これがいま判明していることで、
>
> 切り分けたいのは、
> 子画面から親画面のwindowオブジェクトを参照できないか、
> または、親画面でform1を参照できないか、
> といったところですね。
>
> 確認の方法はalert関数で当該オブジェクトを出力すればわかります。
>
> 子画面の方で
> alert(window.dialogArguments)
> で出力してみて
> objectと出力されれば、子画面から親画面のwindowオブジェクトを参照できています。
> nullやundefinedと出力されれば、子画面から親画面のwindowオブジェクトを参照できていません。
>
> 親画面の方で
> alert(window.form1)
> で出力してみて
> objectと出力されれば、親画面のform1を参照できています。
> nullやundefinedと出力されれば、親画面のform1を参照できていません。
>
> あとは、この結果に応じて策を講じればよいかと思います。
>
> windowがNGで、form1がOKならば、
> windowオブジェクトの参照の仕方を見直す必要があります。
>
> windowがOKで、form1がNGならば、
> form1の参照の仕方を見直す必要があります。
>
> windowがOKで、form1がOKならば、
> 子画面から親画面のform1へのアクセスの仕方を見直す必要があります。
>
> windowがNGで、form1がNGならば、
> 困ります!
>
>
> こんな感じですかね。
> まずは状況を切り分けてみてはいかがでしょうか。
もりおさん回答ありがとうございます。
教えて頂いた方法で動作検証を行ってみました。

親画面(子画面に遷移するボタン)
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.showModalDialog('子画面.aspx',window,'width=300,height=300');"
scriptStr += "</script>
ClientScript.RegisterStartupScript(Me.GetType(), "子画面", scriptStr)

親画面(教えて頂いた情報を出力するボタン)
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "alert(window.form1);"
scriptStr += "</script>"
ClientScript.RegisterStartupScript(Me.GetType(), "子画面", scriptStr)

子画面(子画面を閉じるボタン)
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "window.close();"
scriptStr += "</script>"
ClientScript.RegisterStartupScript(Me.GetType(), "親画面", scriptStr)

子画面(教えて頂いた情報を出力するボタン)
Dim scriptStr As String
scriptStr = "<script type='text/javascript'>"
scriptStr += "alert(window.dialogArguments);"
scriptStr += "</script>"
ClientScript.RegisterStartupScript(Me.GetType(), "親画面", scriptStr)


上記の通りプログラムを記載し、実行しました処、下記のメッセージが出力されました。
親画面(教えて頂いた情報を出力するボタン)押下時
[object HTMLFormElement]

子画面(教えて頂いた情報を出力するボタン)
[object Window]

上記の事からwindowがOKかつform1がOKなので子画面から親画面のform1へのアクセスの仕方を見直せばいいということでしょうか。

引用返信 編集キー/
■74062 / inTopicNo.14)  Re[6]: モーダルダイアログについて
□投稿者/ WebSurfer (400回)-(2014/11/27(Thu) 15:25:09)
No74050 (テンテン さん) に返信

> 上記を実行し、子画面の閉じるボタンを押下した時に下記のエラーが出力されました。
> 0x800a138f - JavaScript 実行時エラー: 未定義または NULL 参照のプロパティ 'form1' は取得できません

Ajax Control Toolkit の ModalPopup を利用することに方針転換しませんか? 

1 週間あれば、その方向に進んで多少学習に時間がかかっても、やりたいことは実現
できたのではないかと思いますが。

その方向に進むなら自分も多少のお手伝いはできると思いますよ。


余計なお世話ばかりしてても何なので、気がついた点を一言・・・

子画面の[閉じる]ボタンクリックでポストバックして、RegisterStartupScript を
使ってスクリプトを登録しようとしているようですが、サーバーからの応答(登録し
たスクリプトを含む)が帰ってきて再描画されるのは ModalDialog ではない(別の
新しいウィンドウになる)ので、window.dialogArguments が未定義になるということ
だと思います。


引用返信 編集キー/
■74063 / inTopicNo.15)  Re[7]: モーダルダイアログについて
□投稿者/ テンテン (8回)-(2014/11/27(Thu) 16:25:09)
No74062 (WebSurfer さん) に返信
> ■No74050 (テンテン さん) に返信
>
>>上記を実行し、子画面の閉じるボタンを押下した時に下記のエラーが出力されました。
>>0x800a138f - JavaScript 実行時エラー: 未定義または NULL 参照のプロパティ 'form1' は取得できません
>
> Ajax Control Toolkit の ModalPopup を利用することに方針転換しませんか? 
>
> 1 週間あれば、その方向に進んで多少学習に時間がかかっても、やりたいことは実現
> できたのではないかと思いますが。
>
> その方向に進むなら自分も多少のお手伝いはできると思いますよ。
→WebSurfer さん助言ありがとうございます。
Ajax Control Toolkit の ModalPopupについて一つ質問があるのですがよろしいでしょうか。

Ajax Control Toolkit の ModalPopupで作成した場合、ModalPopupとして表示している画面を動かすことは可能なのでしょうか。
 (ModalPopupの位置任意で移動し、親画面の情報を覗きたいため)
 私の作成方法が悪かったかもしれませんが一度作成した時に子画面が移動できなかった為、Ajax Control Toolkit の ModalPopupの使用を諦めてしまいました。
 
 
引用返信 編集キー/
■74064 / inTopicNo.16)  Re[8]: モーダルダイアログについて
□投稿者/ WebSurfer (401回)-(2014/11/27(Thu) 16:29:07)
No74063 (テンテン さん) に返信

> Ajax Control Toolkit の ModalPopupで作成した場合、ModalPopupとして表示している画面を動かすことは可能なのでしょうか。

最初に表示される場所を指定することも、マウスでドラッグして位置を変える事も可能です。
引用返信 編集キー/
■74065 / inTopicNo.17)  Re[9]: モーダルダイアログについて
□投稿者/ テンテン (9回)-(2014/11/27(Thu) 16:39:44)
No74064 (WebSurfer さん) に返信
> 最初に表示される場所を指定することも、マウスでドラッグして位置を変える事も可能です。
→WebSurfer さん質問に答えて下さりありがとうございます。
そうなんですか!?
一度作成した時に動かせなかった為、動かないものだと勘違いしておりました。
調査不足で申し訳ございません。
一度前回作成したソースを見直してみます。
引用返信 編集キー/
■74071 / inTopicNo.18)  Re[10]: モーダルダイアログについて
□投稿者/ WebSurfer (402回)-(2014/11/27(Thu) 20:02:48)
No74065 (テンテン さん) に返信

> 一度作成した時に動かせなかった為、動かないものだと勘違いしておりました。
> 調査不足で申し訳ございません。
> 一度前回作成したソースを見直してみます。

CodePlex のサイトから AjaxControlToolkit をダウンロードすると、その中
に AjaxControlToolkitSampleSite.zip というファイルがあるはずですが、そ
れを解凍して Visual Studio から動かしてみてください。

マウスでドラッグして動かせることがわかると思います。

開発にはそのサンプルは必須だと思いますよ。それ無しで Ajax Control Toolkit
を使ったアプリの開発を議論することはできないと言っても過言ではないと思
います。

引用返信 編集キー/
■74079 / inTopicNo.19)  Re[11]: モーダルダイアログについて
□投稿者/ テンテン (10回)-(2014/11/27(Thu) 22:27:32)
No74071 (WebSurfer さん) に返信
> CodePlex のサイトから AjaxControlToolkit をダウンロードすると、その中
> に AjaxControlToolkitSampleSite.zip というファイルがあるはずですが、そ
> れを解凍して Visual Studio から動かしてみてください。
>
> マウスでドラッグして動かせることがわかると思います。
>
> 開発にはそのサンプルは必須だと思いますよ。それ無しで Ajax Control Toolkit
> を使ったアプリの開発を議論することはできないと言っても過言ではないと思
> います。
WebSurfer さん回答ありがとうございます。
とりあえず教えてCodePlex のサイトから AjaxControlToolkit をダウンロードし
動作を確認してみたいと思います。

サイトまで教えて頂きありがとうございます。
引用返信 編集キー/
■74105 / inTopicNo.20)  Re[12]: モーダルダイアログについて
 
□投稿者/ テンテン (11回)-(2014/12/01(Mon) 10:15:25)
> ■No74071 (WebSurfer さん) に返信
>CodePlex のサイトから AjaxControlToolkit をダウンロードすると、その中
>に AjaxControlToolkitSampleSite.zip というファイルがあるはずですが、そ
>れを解凍して Visual Studio から動かしてみてください。
>
>マウスでドラッグして動かせることがわかると思います。
>
>開発にはそのサンプルは必須だと思いますよ。それ無しで Ajax Control Toolkit
>を使ったアプリの開発を議論することはできないと言っても過言ではないと思
>います。

WebSurfer さんに教えて頂いたサイト(https://ajaxcontroltoolkit.codeplex.com/)でAjaxControlToolkit をダウンロードし
AjaxControlToolkitSampleSite.zipを解凍しVistual Studio 2010で動作確認をしようと試みたのですが
色々と格闘してみましたが動作確認をすることが出来ませんでした。
やり方に問題があると思うのですがこちらはどのように動作させればいいかご教授して頂いてもよろしいでしょうか。

下記は私が行った手順になります。
@Vistual Studio2010で『ASP.NET 空のWebアプリケーション(C#)』を作成

A作成したフォルダ内に『AjaxControlToolkitSampleSite.zip』を回答した中身全てを移動する
 ※フォルダ名、ファイル名が同一なものは全て上書き保存

BAで追加したファイル及びフォルダを全てプロジェクトに含める

C参照の追加で『AjaxControlToolkit.dll』を追加

上記まで行ってみたのですがその後のエラーの削除方法が分かりませんでした…




引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -