- - PR -
[カスタムコントロール] ポストバックデータ取得について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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が書き換わったのを確認しているので 問題はないように思います。 文章がヘタですいません。 |
|
投稿日時: 2003-08-01 10:18
すいません、自己解決しました。
原因はhiddenフィールドと同じidのタグがあったからでした。 お騒がせしてすいませんでした。 |
1