2012-01-11 8 views
0

私は現在、Webアプリケーションを作成しています。ドメインオブジェクトを表示するのにAjaxFallbackDefaultDataTableを使用しています。テーブルにはページネーションが含まれており、これまでのところすべてがうまく機能します。AjaxFallbackDefaultDataTableのヘッダーはAJAX経由で更新できますか?

私ができることをしたいもの: IColumn<T>の私の実装では、自分のヘッダコンポーネントをComponent getHeader(String componentId)経由で返送しています。このコンポーネントは、テーブルで現在使用されているページとページサイズによって異なります(現在のデータスライスのみを気にする別のページへのリンクが表示されます)。さて、私はテーブルのvoid onPageChanged()メソッドを実装して、それに従ってカラムを更新するようにしました。

問題: 私は、WicketのAJAXのデバッグウィンドウを使用していますが、それは全体の表は、サーバー上で再レンダリングし、クライアントに送信されることを私に示しています。しかし、ヘッダーは正しく更新されないので、私は永久にページ0に固執しています。デバッガーを使用すると、テーブルが最初に作成されるときにComponent getHeader(String componentId)が1回だけ呼び出されることがわかります。

質問: AJAXifiedデータテーブルを独自に実装しないとこの問題を解決する方法はありますか?もしそうでなければ、誰かが正しい方向に私を向けることができますか?

答えて

1

HeadersToolbarはヘッダーを1回だけ作成します。

各レンダリングの前にヘッダーを再作成する独自のツールバーを実装するか、ヘッダーコンポーネントを書き換えて常に最新のリンクを表示します。

+0

確かに、コンポーネント自体を更新することが成功の鍵でした。 Wicket 1.5の新しいイベントシステムのおかげで、これを分離された方法で実装することは、ケーキでした! – r3nj1

関連する問題