- - PR -
フレーム間のターゲット変更について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-06-24 16:05
asp.netを使ってシステム開発をしているみくと申します。コードはVB使用です。
こちらのInsider.NET @IT会議室 の過去ログなどを見させてもらいましたが、 どうしてもうまくいかないので質問させていただきます。 画面が3つに分かれています。 上:検索画面です。 ボタンが二つ、表示と新規です。 テキストボックスに入力して表示を押すと、DBから情報を検索します。 中:一覧表示のDataGridをDBから表示します。 HyperLinkが貼ってあり押すと、その情報がしたフレームに出て更新できます。 下:入力画面です。 ボタンが二つ、削除と登録です。 ボタンはServer.Transferで、HyperLinkはhl.NavigateUrlでそれぞれのフレームを 更新していきます。HyperLinkはtargetを変えることができるのですが、 Server.Transferでは、どうしてもうまくいきません。 ボタンによって、動的にtargetを変えることはできないのでしょうか? 場合によってはボタンをクリックして、二つのフレームを更新したいのですが、 それもわかりません。 3つのフレームを毎回更新する方法も考えたのですが、フレーム毎に、 情報を更新したくない場合もありますので、できればtargetを変更したいと思っています。 ほとほと困っておりますので、ご指導いただけると嬉しいのですが・・・ よろしくお願いします。 ================================================================================ このスレッドに対する反応がなく、途方にくれています。 これはこの質問に対する解決策がないということでしょうか? そうでしたら、それだけでも教えてもらえるとありがたいです。 皆さんどうぞよろしくお願いします。 [ メッセージ編集済み 編集者: みく 編集日時 2003-06-26 10:43 ] | ||||||||||||
|
投稿日時: 2003-06-26 18:41
あたしも同じ内容で悩んでいます。
ボタン押下時にクライアントスクリプトで、 formのtargetを変更すれば、変わると思ったんですが 変わらないようです。 どうすれば変わるんでしょうねぇ? どなたか教えてください。 | ||||||||||||
|
投稿日時: 2003-06-27 11:26
案
・クライアントでtargetを変更する。(やり方は不明) ・フレームを使わない。 ・ボタンをフレーム内に移す。 ・runatをつけないで、formを別にする。 (このぐらいしか思い浮かばない) | ||||||||||||
|
投稿日時: 2003-06-27 11:56
今日は
答えになって無いかも知れませんが、私の場合は他のフレームへ影響させる時は target="_top"を 付けて、フレーム設定の親へ戻しています、この時必要な情報はSessionに保存しておきます。 これにより,フレーム全体を更新します。 この時、Session情報を参照して各フレムー内で必要な画面構成にしています。 結果として、必要なフレームのみデータや画面が変わり目的を達成しています。 | ||||||||||||
|
投稿日時: 2003-06-27 12:09
catsさん、rvmxさんありがとうございます。
catsさんからいただいた案の >・クライアントでtargetを変更する。(やり方は不明) についてですが、私もnishiさんと同じように >ボタン押下時にクライアントスクリプトで、 >formのtargetを変更すれば、変わると思ったんですが >変わらないようです。 Button1.Attributes.Addなどを使ってクライアントでtargetを 変更しようとしたのですが、Server.Transferを使うと、 遷移元の情報(この場合はtarget)を変更することができないようでした。 現在進めているプロジェクトの仕様が、部分的にスクロールを出さなければ いけないもので、その辺りをクリアーする方法がなければ >・フレームを使わない。 という案は難しいと思います。 >・ボタンをフレーム内に移す。 というのはどういうことでしょう。 ボタンクリックイベントを取得するフレームと、それによって内容が変わるフレームが 同じということでしょうか? >・runatをつけないで、formを別にする。 私のやり方が悪いのかもしれませんが、formを2つ以上書くとエラーになってしまいます。 何か方法があるのでしょうか? 教えていただけるとありがたいです。 rvmxさんの >答えになって無いかも知れませんが、私の場合は他のフレームへ影響させる時は >target="_top"を >付けて、フレーム設定の親へ戻しています、この時必要な情報はSessionに保存しておきます。 >これにより,フレーム全体を更新します。 >この時、Session情報を参照して各フレムー内で必要な画面構成にしています。 という考え方もいいですね。 今までServer.Transferを使っていろいろ試してきましたが、 rvmxさんのやり方も結果として望む形が得られそうですね。 返信がなく困っていたので、ほっとしました。 catsさん、nishiさん、rvmxさん、返信ありがとうございました。 | ||||||||||||
|
投稿日時: 2003-06-27 12:33
こんにちわ。
今回の対象であるターゲット指定はどの時点で確定されるのでしょうか? Page_Load時に確定されるのであれば、 Page_LoadにButton.Attributes.Add("onclick","XXXX(クライアントの関数)")と追加してやれば それぞれのボタンでターゲットを変更できそうです。 # 的外れでしたらすいません。 | ||||||||||||
|
投稿日時: 2003-06-27 13:24
smartnavigation=trueにするとか、iframeでは無理ですかね。
そういうことです。
runat=serverが書いてなければいくつでもformを作れます。 そのかわりサーバコントロールは使えません。 | ||||||||||||
|
投稿日時: 2003-06-27 13:53
はぐれコ〜ギ〜さん、catsさん、返信ありがとうございます。
>今回の対象であるターゲット指定はどの時点で確定されるのでしょうか? >Page_Load時に確定されるのであれば、 >Page_LoadにButton.Attributes.Add("onclick","XXXX(クライアントの関数)")と追加してやれば >それぞれのボタンでターゲットを変更できそうです。 そのようですね。Server.Transferを使わないで、Page.IsPostBack時の Page_LoadイベントにButton.Attributes.Add("onclick","XXXX(クライアントの関数)")を 記入して試したところ、大丈夫そうでした。 ただ、Button.Attributes.Add("onclick","XXXX")というのは、一度のPage_Loadイベントに一度しかかけないのでしょうか? デバックしてみると、二度目からは通っているのに、画面上は無視された形になって しまいました。 >smartnavigation=trueにするとか、iframeでは無理ですかね。 すみません。 勉強不足で、smartnavigation、iframeの使用法がよくわかっていませんでした。 もう少し調べてから検討させていただきたいと思います。 >runat=serverが書いてなければいくつでもformを作れます。 >そのかわりサーバコントロールは使えません。 これは知りませんでした!VB側でコードをいじるために、最初の段階でrunat=serverを 記入していましたので、てっきり.NETではformはひとつなんだと思っていました。 勉強になりました! |