- PR -

[カスタムコントロール] ポストバックデータ取得について

1
投稿者投稿内容
nday
会議室デビュー日: 2002/11/20
投稿数: 15
お住まい・勤務地: 埼玉
投稿日時: 2003-07-31 13:36
カスタムコントロールを自作していて、不思議な現象に出会いました。
どなたか原因がわかる方いらっしゃいますでしょうか。

------------------------------------------------------------
【状況】
Tableのセルがクリックされたら背景色をJavaScriptでhiddenフィールドの
'color'に値を格納してポストバックし、それをLoadPostDataで取得している。
しかし、JavaScriptの記述方法によって取得できない場合がある。

【取得できる方法】
<td style="background-color:#FF0000;" onclick="color.value=this.style.backgroundColor;__doPostBack('color,'')";>
あいうえお
</td>

【取得できない方法】
<td style="background-color:#FFD3EF;;" onclick="SelectColor(this);
__doPostBack('color','')";>
あいうえお
</td>

function SelectColor(obj){
color.value=obj.style.backgroundColor;
alert(color.value);
__doPostBack('color','');
}

【補足】
colorのvalueには、初期値として'未選択'を設定しています。
上記のSelectColor()は、OnPreRender()でPage.RegisterClientScriptBlockを
使用して書き出しています。
-------------------------------------------------------------

SelectColor()内でalert()をしていますが、これでvalueに色が格納されている
ことを確認できています。
その後ポストバックされて、LoadPostBackが呼ばれhiddenフィールドの値を
取得しますが、この時の値は初期値の'未選択'になってしまっています。

取得できる方法と、取得できない方法で違いはないと思うのですが・・・。
只、フレームワークが自動で出力する__doPostBack()のスクリプトブロックの
位置が前者と後者で異なってはいます。
しかし、確かにalert()でhiddenのvalueが書き換わったのを確認しているので
問題はないように思います。

文章がヘタですいません。
nday
会議室デビュー日: 2002/11/20
投稿数: 15
お住まい・勤務地: 埼玉
投稿日時: 2003-08-01 10:18
すいません、自己解決しました。

原因はhiddenフィールドと同じidのタグがあったからでした。

お騒がせしてすいませんでした。
1

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