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

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

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

Re[4]: タイトルバーにある [X] のイベント


(過去ログ 91 を表示中)

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

■54175 / inTopicNo.1)  タイトルバーにある [X] のイベント
  
□投稿者/ こまったちゃん (12回)-(2010/10/07(Thu) 17:06:53)

分類:[ASP.NET (C#)] 

開発環境Visual Studio2008 Professional Edition 評価版

お世話になります。

Webフォーム(WebForm1.aspx)を使用してC#で作った画面(MakeScreen.aspx)を
下記のJavaScriptを使用して呼び出しています。↓
ClientScript.RegisterStartupScript(cstype, "OpenNewWindow", 
"<script language='javascript'>
rtn=window.showModalDialog('MakeScreen.aspx', null, 'dialogWidth=600px; dialogHeight=600px; 
resizable=yes; scroll=no; titlebar=no; toolbar=no;');if(rtn == '')
{form1.TextBoxHidden.innerText = \"\";}else{form1.TextBoxHidden.innerText = 
\"setCompany\";form1.submit();}</script>");

画面が表示されるとタイトルバー及び、タイトルバーに[X}ボタンが表示されます。

Webフォーム(WebForm1.aspx)を使用してC#で作成した際には、上記のタイトルバー及び、
タイトルバーには[X}ボタンはありませんので画面を閉じる際の事後処理は、画面作成時に
ツールボックスのボタンで作成した[キャンセル]ボタンの
btn_Cancel_Click(object sender, ImageClickEventArgs e)
で行っています。

この事後処理を、タイトルバーに[X}ボタンを押下する場合に走るイベントに追加したいので調査した結果、
protected void Page_Close(object sender, EventArgs e)
なのではと思いブレイクポイントを貼ってみたのですが[X]押下時に入ってきませんでした。

他には、Windowsフォーム画面等はあるのですが、Webフォームのやり方を見つける事が出来ませんでした。

そもそも、Webフォームでは[X]のイベントで処理をする方法などは一般的ではないのか、
それとも存在しないのかわかりません。

誠に申し訳ないのですが、知っている方がいましたらご教授お願い致します。

引用返信 編集キー/
■54176 / inTopicNo.2)  Re[1]: タイトルバーにある [X] のイベント
□投稿者/ マサヤ (165回)-(2010/10/07(Thu) 17:49:49)
>タイトルバーには[X}ボタンはありませんので
→window.showModalDialog('MakeScreen.aspx', null, 'dialogWidth=600px; dialogHeight=600px;
resizable=yes; scroll=no; titlebar=no; toolbar=no;')
このように自分が呼び出しているからだということは理解されていますか?

>この事後処理を、タイトルバーに[X}ボタンを押下する場合に走るイベントに追加したい
→タイトルバーはないのでは?

仕様がよくわかりません。
1.ページは2ページ
2.1ページ目のボタン押下で2ページ目を開く(2ページ目はタイトルバーが表示されないようにする)
3.2ページ目を閉じるときはキャンセルボタンを押下する
で、2ページ目に[×]ボタンが登場することになっているのですが、意味が分かりません。
どのページでの処理の話をしているのか、整理願います。
引用返信 編集キー/
■54177 / inTopicNo.3)  Re[2]: タイトルバーにある [X] のイベント
□投稿者/ こまったちゃん (13回)-(2010/10/07(Thu) 18:32:35)
マサヤさんありがとうございます。
分かりにくい質問で申し訳ありませんでした。

> >タイトルバーには[X}ボタンはありませんので
> →window.showModalDialog('MakeScreen.aspx', null, 'dialogWidth=600px; dialogHeight=600px; 
> resizable=yes; scroll=no; titlebar=no; toolbar=no;')
> このように自分が呼び出しているからだということは理解されていますか?
はい、window.showModalDialogを使用して、画面をを呼び出しているのでタイトルバーが
つくのは分かっています。

> >この事後処理を、タイトルバーに[X}ボタンを押下する場合に走るイベントに追加したい
> →タイトルバーはないのでは?
(誤)resizable=yes; scroll=no; titlebar=no; toolbar=no;')
(正)resizable=yes; scroll=no;')
ただ、(誤)を実行してもタイトルバーもツールバーも出ていました。

> 仕様がよくわかりません。
> 1.ページは2ページ
> 2.1ページ目のボタン押下で2ページ目を開く(2ページ目はタイトルバーが表示されないようにする)
> 3.2ページ目を閉じるときはキャンセルボタンを押下する
> で、2ページ目に[×]ボタンが登場することになっているのですが、意味が分かりません。
> どのページでの処理の話をしているのか、整理願います。

1.親画面(A画面)の検索ボタンを押下すると、下記↓のJavaScriptを使用して子画面(B画面)を呼び出します。
  ClientScript.RegisterStartupScript(cstype, "OpenNewWindow", "<script language='javascript'>
   rtn=window.showModalDialog('MakeScreen.aspx', null, 'dialogWidth=600px; dialogHeight=600px; resizable=yes; scroll=no;);
    if(rtn == ''){form1.TextBoxHidden.innerText = \"\";}else
    {form1.TextBoxHidden.innerText = \"setCompany\";form1.submit();}</script>");

2.上記1.で呼ばれた子画面(B画面)には[キャンセルボタン]があるので、画面を閉じる際の
   事後処理は[キャンセルボタン]押下時に走る
  btn_Cancel_Click(object sender, ImageClickEventArgs e)のイベント内で行います。

3.上記2.のbtn_Cancel_Click(object sender, ImageClickEventArgs e)のイベント内で
  行っている事後処理を上記1.で呼ばれた子画面(B画面)のタイトルバーにある[X]ボタンを
  押下した際に走るであろうイベントの中でも行いたいです。

※1.子画面(B画面)にはタイトルバー及び、タイトルバーに[X]ボタンを表示します。
※2.子画面(B画面)を閉じる方法は[キャンセルボタン]押下及び、[X]ボタン押下の2通りあります。
※3.上記※2.の事後処理は同じ処理を行います。

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

引用返信 編集キー/
■54179 / inTopicNo.4)  Re[3]: タイトルバーにある [X] のイベント
□投稿者/ todo (59回)-(2010/10/07(Thu) 20:06:08)
2010/10/07(Thu) 20:08:33 編集(投稿者)

サーバサイドとクライアントサイドを分けて考えましょう。

子画面の[X]ボタンを押してもポストバックしないから、サーバーサイドイベントが発生するわけがありません。
クライアントサイドならonunloadイベントが発生するはずです。

DHTMLリファレンス(イベント)
http://msdn.microsoft.com/ja-jp/library/cc392219.aspx

--
魔法の杖シンドローム
http://www.atmarkit.co.jp/fdotnet/opinion/kawamata/2002_07.html

に気をつけください。
引用返信 編集キー/
■54265 / inTopicNo.5)  Re[4]: タイトルバーにある [X] のイベント
□投稿者/ こまったちゃん (14回)-(2010/10/12(Tue) 12:55:35)
todoさん 返信ありがとうございます。

> サーバサイドとクライアントサイドを分けて考えましょう。
これをキーに調べてみます。

ただしばらく、PCが使えなくなってしまうのでスレッドを放置してしまう可能性が
ある為、誠に申し訳ないのですが一度解決済みとさせて頂きます。

こちらの都合でご迷惑をかけてしまいますが、
今後も宜しくお願い致します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -