- - PR -
DataGridの選択ボタンで別ウィンドウを開きたい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-22 10:53
いつも拝見させていただいております。
DataGridに[選択]ボタンを用意し、クリックされたら 別のWindowを開きたいと思います。 ------------------------------------------------------------ Dim strScript As String strScript = "<script language=JavaScript>" & vbCrLf strScript &= "<!--" & vbCrLf strScript &= "window.open('Form1.aspx', '_blank','scrollbars=yes,resizable=yes, dependent=yes,width=900,height=700');" & vbCrLf strScript &= "//-->" & vbCrLf strScript &= "</script>" & vbCrLf If Me.IsStartupScriptRegistered("DataRef") = False Then Me.RegisterStartupScript("DataRef", strScript) End If ------------------------------------------------------------ 結果、画面は開いてくれませんでした。 それどころか、DataGridのインデックスの高さがUPして、さらに 明細行が全て消えてしまいます。 新しい画面を開いても元の画面は操作できるようにしたいので モーダルにせず window.open を使いました。 これらの現象は普通の動きなのでしょうか・・・? よろしくお願いいたします | ||||||||
|
投稿日時: 2005-06-22 11:32
DataGridのItemDataBoundで
のような手続きをしてみてはどうですか? #myPopUpはwindow.open()を実行するfunctionとして書いておいてください。 _________________ ASP/ASP.NETだいすき。 ASP++ by Moo http://moo-asp.net/ 日記は ほぼ毎日更新中 http://d.hatena.ne.jp/aspx/ | ||||||||
|
投稿日時: 2005-06-22 12:00
Moo様、ありがとうございます!
説明が足りなかったのですが、画面を開く前にDataGridの値を Sessionにセットする必要があります。 その場合、ItemDataBoundで出来ますでしょうか? また、DataGridの値によって開きたい画面が異なります。 投稿してからさらに調査してみたのですが、ボタンクリック時に DataGridのインデックスの高さが変わったり、明細行が消えたり する原因は違うところにあるようです。 以前はこのような現象はおきなかったのですが、インデックス 部分をクリックしてソート(昇順・降順)ができるように修正 してから発生するようになりました。 どうやらこれが原因のようです。 が、対応策はまだ見つかっておりません。 こちらについてもお心当たりがございましたら、よろしくお願い いたします。 自分でもさらに調査いたします♪ | ||||||||
|
投稿日時: 2005-06-22 13:29
Sessionに値を格納するタイミングが
子画面のLoad時でよいのであれば、 window.open時にパラメータとして与えてあげればよいと思いますが...
上記コードは完全ではありません。 javascript:myPopUpの引数を拡張しました。 _________________ ASP/ASP.NETだいすき。 ASP++ by Moo http://moo-asp.net/ 日記は ほぼ毎日更新中 http://d.hatena.ne.jp/aspx/ | ||||||||
|
投稿日時: 2005-06-22 21:34
DataGridに表示するデータをViewStateに保存して、データをバインドするのを、データが変わったときだけにすれば、そのような現象は発生しないと思います。
まずはMSDNで、ItemDataBoundを調べましょう。また、ASP.NETの状態管理に関する項目にも目を通しましょう。 _________________ | ||||||||
|
投稿日時: 2005-06-23 11:05
皆様、ありがとうございます!!!
何とか出来ました☆ 画面を開くところは、こんな感じで) ----------------------------------------- Dim scriptString As String scriptString = "<Script language=""javascript""> " & vbCrLf scriptString &= "<!--" & vbCrLf scriptString &= "var w " & vbCrLf scriptString &= "w = window.open('SinseiGamen.aspx','_blank','menubar=no,toolbar=no');" & vbCrLf scriptString &= "//-->" & vbCrLf scriptString &= "</Script>" & vbCrLf If Me.IsStartupScriptRegistered("DataRef") = False Then Me.RegisterStartupScript("DataRef", scriptString) End If ----------------------------------------- でも、いまひとつ理解できていないです;; (もう少し勉強します) ソートのところも上手くできました! ありがとうございました。 ずうずうしく、もう一つお聞きしたいのですが、、、。 DataGridで編集ボタンとかを押すと、その行の色が 変わりますよね。 その状態でソートすると、この色が指定されている行に ついていかないんです。 【昇順】 1行目 キー値:1 2行目 キー値:2 3行目 キー値:3 ←現在はココが指定されて色が違う ↓ 【降順】 1行目 キー値:3 ←降順ソート後はココの色が変わってほしい 2行目 キー値:2 3行目 キー値:1 ←同じ場所が指定されたまま 全く検討がつきません。 申し訳ございませんが、ご教授ねがいます。 | ||||||||
|
投稿日時: 2005-06-23 12:11
NAL-6295です。
違う内容の質問は新規にスレッドを起こしたほうが後で参照する方のためになりますので、そのようにしていただけませんでしょうか。 _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||||||
|
投稿日時: 2005-06-23 13:05
それもそうですネ!
もう少し調べてみて、わからないときはまた ご質問いたしますので、そのときは宜しく お願いいたします。 |
1