Tsutomu Yano
t_yano****@me*****
2010年 6月 12日 (土) 07:00:34 JST
矢野です。 次のポストは,私はメールしたつもりだったのですが,今日メールボックスに残っていることに気がついたものです。 もう一ヶ月以上前のものへの返信になりますが,一応,再ポストしておきます。 --------------------- 矢野です。 Panelはあらかじめページのどこかにaddされていると考えてよろしいでしょうか? また,DatePickerはあらかじめPanelにaddされているとかんがえてよろしいでしょうか? あと,表示状態はどうでしょうか。 アコーディオン上になっているのであれば,初期状態ではDatePickerは非表示なのでしょうが,メニューが選ばれたときにはじめてPanelにaddしているのでしょうか? 最初は使わない場合でも,Panelにはaddしておいて,isVisibleをオーバーライドすることで非表示と表示状態を切り替えるようにしてみたらどうなるでしょうか? この場合,DatePicker,もしくはその親パネルのsetOutputMarkupPlaceholderTag(true)を呼び出すのを忘れないようにしてください。通常,Wicketはvisibleプロパティがfalseのコンポーネントに対してはタグの出力自体をやめます。setOutputMarkupPlaceholderTag(true)を呼び出しておくと,タグは生成され,styleによって非表示となるので,動的に表示・非表示を切り替えられるようになります。 ページのレンダリングフェーズでコンポーネントがどこにも存在しないからじゃないかというのが私の勘なんですが,もしそのとおりであれば,上記のようにコンポーネントをaddしてやることで,レンダリングフェーズに確実にコンポーネントが存在する状態をつくることができますね。 もし「パネルを全部一気に作ると処理が重い」などの理由があるのであれば,AjaxLazyLoadPanelの使用を考えてみてはいかがでしょうか。getLazyLoadComponent()をオーバーライドするだけで,遅延初期化されるパネルをつくることができます。 On 2010/04/19, at 18:44, 金城 伸之 wrote: > kinjonです。 > 初めて投稿させてもらいます。 > > 掲題の件ですが、 > ページのレイアウトがヘッダー、左側にアコーディオン型のメニュー、 > 右側にコンテンツ部分があります。 > > メニューを押下げ時にコンテンツ部分を非同期で更新 > させていますが、コンテンツに含まれるJavaScriptライブラリを含む > コンポーネントのJavaScriptがHEADタグに入ってきてくれません。 > > コンテンツ部分はPanelで、JavaScriptライブラリを含むコンポーネントは > Wicket-extensionsのDatePickerを使用しています。 > > DatePickerはIHeaderContributorを実装しておりますので、 > HEADタグを更新してくれるとおもったのですが、更新されません。 > > 調べていたんですが分からないので > 分る方がいらっしゃいましたら、よろしくお願いします。 > > _______________________________________________ > Wicket-ja-user mailing list > Wicke****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user