- PR -

フレーム間のターゲット変更+値渡しについて

1
投稿者投稿内容
kttk
会議室デビュー日: 2003/05/14
投稿数: 12
投稿日時: 2003-08-06 22:36
いつも参考にさせていただいています。

フレームで検索して、ボタンクリック時のフレーム間のターゲット変更についてonclickを追加すればよいということは分かりました。
実際にはImageButtonを使い、ImageButtonのクリックされた座標を渡したいと思っております。

ImageButton1.Attributes["onclick"]="javascript:parent.right.location.href = ('A.aspx');";
として、A.aspxが更新されるのは確認できたのですが、ImageButton1のクリックされた正しい座標をA.aspxに渡せないでいます。

ImageButton1をクリックしたとき
 onclick実行 → A.aspx更新 → ImageButton1_Click()でSessionにe.X、e.Yを設定
という順番で行われるため、Sessionに座標をセットする前にA.aspxが更新され、A.aspxでは、一回前の座標を参照している状態です。

正しい値を渡すにはどうしたらよいのでしょうか?

#Server.Transferも考えたのですが、他にもボタンがあり他のボタンがクリックされた時は、
#ターゲットを変更したくないので今回はServer.Transferは使えないと判断しました。
#この判断があってるかも分からないですが…
kttk
会議室デビュー日: 2003/05/14
投稿数: 12
投稿日時: 2003-08-07 17:50
自己レスです。

body の onloadイベントでターゲット変更することで何とかできました。

<body onload="TargetChange()">

function TargetChange(){
if ("<% = isTargetChange %>" == "True") {
parent.right.location.href = "A.aspx";
}
}

一応、コードの方で、ターゲット変更の対象となるButtonがクリックされた場合のみisTargetChangeにTrueを設定することで、対象外の時は実行しないようにしました。

思った動作はしたのでOKとしましたが、これが正しいのか分からないのでちょっと不安です。
これだと間違ってるとか、他にいい方法がある場合は、ご教授いただければと思います。
よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)