- - PR -
複数フレームを同時に書き換え
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-08-22 14:08
お疲れさまです。elmoです。
フレームを 上:検索画面 中:検索結果A画面 下:検索結果B画面 と三つにきり、上の検索画面から中と下を両方とも書き換えたいと思っています。 response.redirectではターゲットを<form>でしか設定できないようで、 複数ターゲットを指定することができませんでした。(できるのかな〜?) response.redirectの挙動というのはSubmitボタンが押された時と同じ動きだと思うのですが複数フレームを指定する方法はあるのでしょうか? やはりむりむりJavaScriptを書いて、 parent.framename.locaion.href="aaa.aspx" とすべきなんでしょうか? でもこれをためしても、クライアント側にJavaScriptが書き出されなかったんで、 まだ調べないといけないです〜。 書き出す前にsubmitされてそうな動きしてます・・・普通のボタンなのに・・・。 なにかよい方法、よいお知恵がありましたら、ご教授のほどをよろしくお願いします。 |
|
投稿日時: 2002-08-22 18:28
フレーム屋(苦笑)うりゅうです。
>フレームを >上:検索画面 中:検索結果A画面 下:検索結果B画面 >と三つにきり、上の検索画面から中と下を両方とも書き換えたいと思っています。 それは・・・・・ふつうのASPや、HTMLでも出来ないのでは・・・・ >やはりむりむりJavaScriptを書いて、 >parent.framename.locaion.href="aaa.aspx" >書き出す前にsubmitされてそうな動きしてます・・・普通のボタンなのに・・・。 方法論としてはそうだと思いますが、実はASPXのボタンのクリックイベントは恐ろしいことにSUBMITが行われて、PAGE_LOADイベントが終わった後(!)に起きていますので、その段階で処理行っていたのでは間に合いません。 ですので、上記のスクリプトをFunctionかなにかにして、ASPXのなかに直接埋め込んで、ボタンのonClickプロパティのそのファンクションを呼び出すようにすればいいと思います。もちろん、ファンクションの最後に「submit()」を入れるのを忘れないようにしてください。 合ってるかな?(笑) _________________ -------------------------------------- ネットビルド 小田原貴樹 odahara@netbuiuld.jp -------------------------------------- |
|
投稿日時: 2002-08-22 19:31
elmoです。
うりゅうさん、回答ありがとうございます。 やっぱりsubmitしてたんですね。 普通のWebコントロールのボタンを貼り付けたのに、ブラウザで表示されたページのソースをみたらしっかりsubmitボタンになっていました。 ページ遷移する前にさきにsubmitされてしまってたんですね。 回避方法やってみます。 あと今回のシステムはたくさんフレームをきりそうなんですが aspxでフレームを扱うのはかなり面倒みたいですね・・・。 前途多難です。 また問題にぶつかったしまったんですが、 サーバー側の処理中に、ダイアログボックスを表示し、OKかNGを選んでもらって処理の分岐をするというのはできるんでしょうか? やりたいことは: サーバーコントロールのボタン「更新ボタン」をクリックするとDBへの更新がはじまるという処理を書いているんですが、この「更新ボタン」を押した時、本当に更新していいのかという確認のためのダイアログボックスを表示したいのです。 そしてyesを押された時は更新、noを押された時はキャンセルというふうにしたいのですが、 JavaScriptでだしたダイアログボックスのOKかNGか押されたというイベントをはたしてサーバー側でとれるのかなと疑問です。 クライアントの処理をかくタイミングがいまいちつかめませんし、サーバー側でむりむりJAVASCRIPTの文を書き出すとそれがソースのどこに書き出されるか予期できませんよね。 もうそれかサーバーコントロールを使わずに、普通にhtmlコントロールで処理すればいいんでしょうか。そしてサーバーに送るとか・・・。 ああ、混乱してきました。 みなさんクライアント側の処理ってどうしてますか? 教えてください〜! |
|
投稿日時: 2002-08-22 23:54
Fossilです。
>また問題にぶつかったしまったんですが、 >サーバー側の処理中に、ダイアログボックスを表示し、OKかNGを選んでもらって処理の分岐を>するというのはできるんでしょうか? 自分も同じ事をするために、ボタンコントロールを作る方法をとりました。 1.Webフォーム上に配置された時は、Htmlのボタンコントロールになりすます。 2.実行するJavaScriptをプロパティで受ける。 あとは、JavaScriptだけで処理しても良いし、.Net側へ制御を移して コントロールのクリックイベントに処理を書いても都合の良いように出来ます。 検討ちがいのことでしたらすみません。 |
|
投稿日時: 2002-08-26 10:35
ごめんなさい。
「Htmlのボタンコントロールになりすます」 というのは具体的にいうとどういうことなんでしょう? htmlコントロールを使ってクライアント側で処理をし、サーバー側に送るという意味でしょうか? 教えてください!! |
|
投稿日時: 2002-08-27 23:35
elmoさん。
言葉が足らなくてすみません。 「Htmlのボタンコントロールになりすます」 というのは、独自で作成した ボタンコントロールのRender(コントロール描画)時に、本来ならば WebContorlsのButtonコントロールが持っている処理が実行 される所を、Htmlコントロールのモノにすりかえるということです。 sub Render (output as HtmlWriter) ↓WebControlsのボタンを表示 mybase.Render(output) ↓HtmlControlsのボタンを表示 Dim HtmlButton as New HtmlControls.Button HtmlButton.RenderControl(output) end sub あとは、RenderControlの前にHtmlControlsの ボタンに対してOnClick時に実行するJavaScriptなんかを 指定してあげれば良いハズです。 *ロジックに誤りがあったらすみません。 確かこんな感じというモノを書いてしまいました。 |
|
投稿日時: 2002-08-28 11:39
Fossilさん、回答ありがとうございます。
ということはaspxで用意されたボタンコントロールを使わずに、 自分で(ボタン)コントロールをつくりそれを書き出すときに、 処理するという感じなんでしょうか? わ〜難しそう(涙)。 そこまでしないとできないということなんですね(涙)。 しかもそれを更新処理の途中でいれるとなると・・・。 まだ自分でコントロールを作ったことがないので、 コントロールの作り方から調べないといけないですね・・・。 がんばります。 わからないことがあったらまたこのスレッドに書き込みますので、 よろしくお願いします〜。 |
|
投稿日時: 2002-08-28 15:06
Javascriptで(クライアント側)での制御をしたくないというなら、ちょっと求めている方法ではないかもしれませんが、こんな方法もあります。
[フレームの一つ].aspx にかかれている <form>タグの[runat="server"]を削除し、 target=_parent Action="[ぺーじ2].aspx" としてやると、ボタンのSubmitの送信先がフレームの親になり(_topでもいいと思います) ページ2に制御が移ります。 この時点だと ブラウザはフレーム構成ではなく[ページ2.aspx]単体を表示しようとしますので、 自分でframeset のページを書き出すか、redirectあたりでフレームページを 呼び出すという方法も使えます。 Session変数などもちゃんと維持しますので、結構オススメです。 [ メッセージ編集済み 編集者: ぷりっつ 編集日時 2002-08-28 15:07 ] |
1
