• 締切済み

ASP.Net 条件により自身を閉じるには

お世話になります。 自身のWEBフォームをボタンなどで閉じる場合、 ボタン.Attributes.Add("onclick", "return window.close()") など 他のサイトで例題を拝見することができますが、ボタンを押し、その後ある条件に合致する場合のみ自身を閉じる方法をお教えいただけないでしょうか? そのセンテンスのみでフォームを閉じる方法というのでしょうか。 また、閉じる際にはメッセージが表示されますが、あれを表示させない方法はあるのでしょうか? そして、質問の追加なのですが、その後にマスターページを開きたいのですが、うまく行きません。普通のResponse.Redirect を使っても オープンできないのですが、特殊なオープンの仕方があるのでしょうか? 何卒よろしくお願い申し上げます。

みんなの回答

  • shockatz
  • ベストアンサー率80% (153/191)
回答No.3

ご質問の内容ですが、ひょっとしてJavascriptの別窓で開いたウィンドウにログインフォームを設置し、ログイン動作でそれを閉じる動作を考えておられます? 同じウィンドウ内にてログインフォームを「閉じる」というのは、画面遷移動作そのものありで、ASP.NETの標準機能で、ボタン押下=PostBack=イベントハンドラ=Response.Redirectになると思われます。 ログインフォームが別窓で開いている場合は、ウィンドウを閉じるにはクライアントイベント(JacaScript)が必要になります。親側画面の再描画も必要になることが多ですが、これもJacvaSriptが必須です。 自分が思うに、そのような動作をさせるには、Ajaxが必須になると思います。 ・ログイン画面側のボタン動作でJavaScript=Ajaxコードを実行しサーバ問合せ。 ・結果取得でOKならば、親画面側のJavaScriptコードを呼出して、子ウィンドウ(ログイン画面)を閉じさせ、連続して親画面自身を再描画(必要なら遷移)。 僕の思い違いだったらお赦しくださいませ。

kyokotan12
質問者

お礼

shockatzさん 大変お世話になっております。 質問していた内容はとてもシンプルで、ご指摘にあるような複雑なものではございませんでした。 ログインフォームの概念を無視した考えでございました。大変申し訳ございません。 この辺りは参考書を再度読み返し、サンプルを作り、また壁にあたった時に質問させて下さいませ。 ありがとうございました。 またご教授下さいませ。

  • onos
  • ベストアンサー率81% (127/155)
回答No.2

どのようなログイン(?)を考えているのかわかりませんが。。。 Webのログインについていろいろ調べてみてください。 大きく基本認証というしくみとForm認証という仕組みがあり、それらをうまく使うことで 実現しようとしている仕組みが実装できるかもしれません。 > 画面を閉じてからでなくていいのですが、マスターページを開く方法はありますでしょうか? > マスターページが子になることはできないのでしょうか? マスターページは、実際には子となっているページに組み込まれて表示されるという仕組みに なっています。 ある意味、マスターページとして独立しているように見えますが、ちょっと特殊なコントロール、 と考えたほうがいいかもしれません。 このため、コントロールですから独自にそれだけを表示することはできません。 マスターページにまとめている内容だけを表示したい、ということであれば、コンテンツの 部分が空のページを作成して、そのページを表示すればよいと思います。

  • onos
  • ベストアンサー率81% (127/155)
回答No.1

> また、閉じる際にはメッセージが表示されますが、あれを表示させない方法はあるのでしょうか? ありません。 ブラウザの実装によっても動作が異なりますので、FireFoxだとそもそもウィンドウを閉じることが できなかったりします。 このあたりはもとは自由に閉じることができたのですが、それがセキュリティホールとなるような 使い方がでてきたため、動作が変更された点です。 なので、どうにかできると思わないで、そういうブラウザの動作を前提に仕様を考える必要が あります。 > そして、質問の追加なのですが、その後にマスターページを開きたいのですが、うまく行きません。 画面を閉じてから他のページを開く、なんてことはできないと思います。 そもそも別のページを開くなら、もとの画面を閉じる必要がないでしょう。

kyokotan12
質問者

補足

onosさん いつもお世話になります。 とんでもない質問ばかりでいつもすみません。 ログイン画面を独自に作って、ログインが許可されたら、マスターページを開く事ができないかなと思っておりました。 Adminやロールとは違う意味のログイン画面を作りたかったので、普通のWebフォールでのログイン画面を普通のコントロールで作って、許可がOKなら、その画面を閉じて、マスターページを開きたかったのです。 画面を閉じてからでなくていいのですが、マスターページを開く方法はありますでしょうか? マスターページが子になることはできないのでしょうか?