古川 烈
r_f_315****@hotma*****
2008年 9月 2日 (火) 12:48:28 JST
古川です、 先の「Fragment」の件とは全然関係が無いのですが、 気になる挙動があったので報告です。 Wicketのバージョンは1.3.4です。 DIVに設定できるようなWebMarkupContainerを二個作成し、 Panelを継承したクラスを2個作成します。 作成されたPanelの要素としてAjaxLinkを作成し、 Panel同士は相互参照できるように、お互いの参照を保持します。 この状態でAjaxLinkの @Override public void onClick( AjaxRequestTarget arg0 ) { } で自身と参照相手のsetVisible()を行い、片方が表示されているときは、片方は非表示の状態を作ろうとしました。 画面を構成する全ての要素において、 setOutputMarkupId( true ); setOutputMarkupPlaceholderTag( true ); し、IDは出力状態にあります。 arg0.addComponent();にもページ全体を覆うコンテナを設定しましたが、 イベントを発生させたコンポーネント自体の再描画は発生しますが、 参照側のコンポーネントの再描画が行われませんでした。 デバッガで見ると、setVisible後のisVisibleはしっかり切り替わっていました。 どうも片方の再描画の通知が行われていないように思います。 これをAjaxリンクではなく、ImageなどにAjaxEventBehavior("onmousedown")を追記して、 ハンドラ内でまったく同じコードを記述すると両方再描画が発生します。 この挙動の違いがバグなのかどうかの判断がつきませんでした。 以上です。 (考慮が漏れている点や、勘違いがあれば指摘していただけると幸いです。) _________________________________________________________________ 多くのHotmailユーザが使っているのには理由がある。試してみませんか? http://campaign.live.jp/hmim/top/ -------------- next part -------------- HTMLの添付ファイルを保管しました...Download