• 締切済み

ASP.NETで子画面の処理でわからなく悩んでいます。

ASP.NETで子画面の処理でわからなく悩んでいます。 ?親画面Aでボタンを押下すると、子画面Bが表示されます。 ?子画面Bが存在しないときは、子画面Bを表示をさせて存在するときは、  子画面Bの内容をリロードをしたいと思っています。  データの受け渡しは、 Sessionでしたいと思っています。 ?ボタン押下時の処理は下記に記載しました ⇒とりあえず画面表示がされます。 ?子画面が存在するときのチェックと子画面のリロードの方法を教えてください。 よろしくお願いいたします。  ASPか javascriptか迷ったのですが ASPであげさせて頂きます。 ' Dim scriptStr As String ' scriptStr = "<script type='text/javascript'>" ' scriptStr += "window.open('webMesai.aspx','_blank');" ' scriptStr += "</script>" ' ' ClientScript.RegisterStartupScript(Me.GetType(), "詳細画面", scriptStr)

みんなの回答

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

次のサイトが参考になるかと思います。 http://f32.aaa.livedoor.jp/~azusa/index.php?t=js&p=window_openclose#a_closed 中ほどにある、ウィンドウの存在有無を確認 という項目を利用すれば、子ウィンドウが開いているか閉じられているか確認できると思いますので、それによって、処理をすればよいかと思います。

関連するQ&A

  • ASP.NET 2.0で悩んでます。

    ASP.NET 2.0で悩んでます。 やりたいことは、 1:Excelファイルのダウンロード 2:以前に出力した場合は再度出力するかの確認ダイアログの表示(ScriptManager.RegisterStartupScriptで実装) 3:隠しボタン(updatePanel外で記述)をクリック(2の処理で実装) 4:「処理中です…。」ダイアログの表示 (3のボタンをAsyncPostBackTriggerとすることでUpdateProgressで実装) 5:Excelファイルの作成 6:iframeに処理を投げる(?)(ScriptManager.RegisterStartupScriptで実装) 7:iframeでダウンロード処理。 の7つです。 実際には5までの処理はできたのですが、5の処理で以下の6の処理を記述して7を実行したいのですが、7のPageLoadに入ってきてくれません。 string script = "$get('dummyframe').src='../DownLoad/DownLoad.aspx';"; ScriptManager.RegisterStartupScript(this, Page.GetType(), "download", script, true); いろいろ試してはみたのですが、原因が4が原因かと思いまたが、調べても動作しない根拠がわかりません。 よろしければ、動作しない理由と対応策をよろしくお願いします。

  • ASP.Net 別ウィンドウを開く・ジレンマ編

    大変お世話になっております。 現在別ウィンドウを開くのに ClientScript.RegisterStartupScript(Me.GetType, "OpenNewWindow", "<script language=""javascript"">window.open('URLを指定', 'TARGET');</script>") を使用しております。 ですが上記の場合だとjavascriptの為、ASP.Net で使用できる ~(チルダ)が使用できず、ルート表示ができません。 Response.Redirectで記述すると、ターゲットが指定できず、ウィンドウを上書きする形になってしまいます。 足して2で割れればいいのですが、javascriptで ~(チルダ)のようなルート指定ができる方法、もしくは、Response.Redirectでターゲットが指定できる方法など、もしあるようでしたら、お教えいただけますよう、何卒ご教授くださいませ。 上級者の方は、このジレンマをどのように克服されているのか是非ともお教えくださいませ。

  • 画面を閉じる(×ボタンやタスクバーから)をトリガーに処理を行えるのでしょうか?

    親画面から子画面をポップアップ表示し、子画面に作成したボタンから(window.opener)をコールして、子画面を閉じる→親画面の処理を行う、という処理を実現しています。 ボタン押下時にJavaScriptをコールすることで処理は行えるのですが、ウィンドウの右上にある「×」ボタンや、タスクバーを右クリック→閉じるなどを行った際にも同じような処理を行うことはできるのでしょうか? 「画面が閉じられた」というトリガーにて処理を行うことができるのでしょうか? onUnloadイベントを試しましたが、「×」ボタンや、タスクバーを右クリック→閉じる場合は処理がおこわなわれませんでした。 よろしくおねがいします。

  • ASP.NET2で入力チェックと確認メッセージ

    ASP.NET2.0を勉強中なのですが、下記の処理ができずに困っています。どうすればいいのでしょうか? 根本的に考え方が間違っているのでしょうか? <行いたい処理> (1)ボタン押下時に入力チェック (2)(1)がOKなら確認メッセージの表示 (3)「はい」の場合は処理を行う <前提> ページには必須チェックを行う検証コントロールを配置し検証を行っています。 ボタンのOnClickに【return confirm('登録しますか?');】と明記すればメッセージは表示されるのですが、検証コントロールのチェックがされません。 また、サーバー側のボタンのクリックイベントで 【ClientScript.RegisterClientScriptBlock】を使用すると、検証コントロールのチェック、メッセージは表示できるのですが、メッセージの戻り値が取得できません。。。

  • asp.net メッセージボックス表示後の判定

    削除ボタン押下時の処理でメッセージダイアログを表示しました。 この後、ダイアログのOKボタンを押された時の処理をコーディングしたいのですが、 どうすれば「OKボタン」or「キャンセル」どちらが押されたか判定できるのですか? お願いします。 Protected Sub BtnDel_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnDel.Click ’ダイアログ表示 ScriptManager.RegisterStartupScript(Me, Me.GetType(), "msgbox", "confirm('" & "削除してもよいですか?" & "');", True) ’OKボタンが押された時削除処理を行う <ここが不明> End Sub

  • 画面から画面へ値1つずつ複数回受け渡しすべてを表示

    タイトル: 子画面から親画面へ値を1つずつ複数回受け渡してすべてを表示するにはどうすればよいでしょうか 内容 はじめまして。 こんにちは DIK です。 私、VisualStudio2013web のASP.netでWebアプリケーションを作成しております 使用言語は Server言語:C# Script言語:JavaScript Sql言語:PostgleSQL クライアント言語にHTML関連他、jQuwery なんかも使っております。 ご質問がありまして、ご教授いただけませんでしょうか・ 内容をざっくり申しますと、画面から画面へ値1つずつ複数回受け渡しすべてを表示することです。 もう少し詳しく解説しますと 親画面と小画面があり、値の受け渡しを行います。 親画面は値の受け取り、子画面が値の渡します 1.子画面を開き、SQLでDBの値を検索してすべてのレコードを表示させます。 2.子画面でDBjのデータが複数表示されている状態で一件データを選択します 3.そのデータを親画面に値を一件送り表示させます。 4.親画面に表示されている状態で、子画面からデータを新たに選択をします 5.そのデータを送ります。 6すると、3で送ったデータ(値)と5で送った値の両方が親画面に表示される このようにするにはどのようにするとよいでしょうか。 方法としてはSessionやApplication変数を使用して送る方法を行いました。 子画面(ポップアップウインドウ)側 ```C# //DataGridで表示したDBの値の取得文(位置セル分の値) //codeはDBで取得した値の1件分のデータです。          String code = MyGrid.Items[e.Item.ItemIndex].Cells[0].Text;         ArrayList data = new ArrayList(); data.Add(code); for (int d = 0; d < data.Count; d++) { String Gridcode = ""; Gridcode+= Convert.ToString(" or goods_code ='" + (String)data[d]) + "'"; Session["Gridcode"] = Gridcode; Application["Gridcode2"] = Gridcode;  } //親画面リロード //再選択へ戻る ``` 親画面側 ```C# //方法1 string Gridcode = (string)(Session["Gridcode"]); string sql = ""; sql += " select goods_name, goods_code from MST_goods "; sql += "where goods_code =''"; sql += "" + Gridcode + ""; //方法2 string Gridcode2 = (string)(Application["Gridcode2"]);      string sql = ""; sql += " select goods_name, goods_code from MST_goods "; sql += "where goods_code =''"; sql += "" + Gridcode2 + ""; ``` 結果は Session["Gridcode"] = Gridcode; Application["Gridcode2"] = Gridcode; の値が子画面から渡すと上書きされてします。 またArrayListで回している値が毎回1データのみになっています 値を複数複数回で複数件回して受け渡すように記述しようとしました ほかに良い方法はありませんか? なおD子画面で選択した値をDB格納させて親画面でDBに格納したデータをすべて取得する方法では実現できますが 条件としては与えられたDBテーブル情報を変更せずに行うことです。そのため値を送るためのDBを作ることができません。 その他の処理は画面操作が同じ動きをできれば、どんな方法を使用しても構いませんということで作成をしております 非常に困っております 長々となってしまい、文章に誤字や説明不足など至らない点があるかと思われますが どなたかご教示お願い致します。 最後に 画面遷移方法をお伝えします 1.らC#側にJavaScriptの処理をさせて画面の開閉を行う 2.子画面はポップアップウインドウです 開き方は、親画面から Window.open() で子画面を開く           C#側に ```C# string startupScript = ""; startupScript += "<script language='JavaScript'> window.open()"; startupScript += " <" + "/script>"; ClientScript.RegisterStartupScript(this.GetType(), "startup", startupScript); ``` の記述をしております 処理を行い子画面からなんだかの処理Reloadで親画面に処理を送る           C#側に ```C# string startupScript = ""; startupScript += "<script language='JavaScript'>   window.opener.location.reload()"; startupScript += " <" + "/script>"; ClientScript.RegisterStartupScript(this.GetType(), "startup", startupScript); ``` の記述をしております この処理によってポップアップウインドウを操作して元画面に値を送る処理を行えました    

  • asp.net 言語はVB 画面のボタン押下にてメモ帳を起動したい

    お世話になっております。 ASP.NET 言語:VBにて開発中です 画面にてボタン押下処理で クライアントのメモ帳を開くことは可能ですか? VB.NETだとShellで出来そうなんですが・・・ クライアントの処理となるとJavaScriptで行うのかな? と思いますが知識不足で混迷中です。 ご存知の方教えてください。 以上 よろしくお願いいたします。

  • aspからasp.netへの遷移(その逆も)

    拡張子がaspの画面から拡張子がaspxの画面へ遷移することは 不可能なのでしょうか?何か特殊な方法があるのでしょうか? ありましたら教えていただけないでしょうか。 aspx画面でボタン押下時に Response.Redirect("./test1.asp")でasp画面へ遷移させると 以下のエラーとなります。 '/WebSite1' アプリケーションでサーバー エラーが発生しました。 この種類のページは処理できません。 説明: 要求されたページの種類は、明示的に禁止されるため処理されません。拡張子 '.asp' が正しくない可能性があります。 下の URL が正しく入力されていることを確認してください。 要求された URL: /WebSite1/test1.asp バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.1433; ASP.NET バージョン:2.0.50727.1433

  • ボタン押下時のアラート表示の残像が残る

    以下のプログラムで、btnUpdateを実行すると、アラート表示されるのですが、 アラートのOKボタンを押さず、ぐりぐりと画面上移動させるとその軌跡が残像として残ります。 どのようにすれば、このような残像が残らないようにする事が出来るでしょうか。 ご存じの方、ご教授願います。 protected void btnUpdate_Click(object sender, EventArgs e) { if(xxxx == aaaa) { 処理A} else {AlertBox("Input Code");}   } //アラート表示 private void AlertBox(String msg) { string startupScript = ""; string strScript = ""; msg = msg.Replace("'", "\""); msg = msg.Replace("\n", " "); strScript = " alert('" + msg + "')"; startupScript = "<script language='JavaScript'>" + strScript + "</script>"; ClientScript.RegisterStartupScript(this.GetType(), "key1", startupScript); }

  • 「画面が閉じられた」という行為をトリガーとして使えますか?

    親画面から子画面をポップアップ表示し、子画面に作成したボタンから(window.opener)をコールして、子画面を閉じる→親画面の処理を行う、という処理を実現しています。 ボタン押下時にJavaScriptをコールすることで処理は行えるのですが、ウィンドウの右上にある「×」ボタンや、タスクバーを右クリック→閉じるなどを行った際にも同じような処理を行うことはできるのでしょうか? 「画面が閉じられた」というトリガーにて処理を行うことができるのでしょうか? よろしくおねがいします。

    • ベストアンサー
    • Java