Tsutomu Yano
t_yano****@me*****
2012年 2月 21日 (火) 00:30:22 JST
矢野です。 ソース見る限りでは、ボタンはButtonクラスですんで、Ajaxは関係なく、サブミット後にページ全体が再描画されるはずです(例に上がってるソースが正しいことが前提ですが)。その場合、addComponentは必要ないですね。 文面からすると、DavaViewの内容は書き換わるけども、ナビゲータだけがちゃんと更新されず、ナビゲータとDataViewが連動しなくなるということなのでしょうか? もしButtonがAjaxButtonなのであれば、青山さんの言うように、AjaxPagingNavigatorもAjaxRequestTargetniaddComponentする必要があります。 実際にButtonクラスを使っているならば、より具体的にどうなるかを教えて欲しいです。再描画されたとき、AjaxPagingNavigatorのページ数は正しいか、とか、実際にいま表示しているページ番号を指しているか、とかが気になります。 --------------------------------------------------- 矢野 勉(やの つとむ) 電子メール: t_yano****@me***** --------------------------------------------------- On 2012/02/20, at 23:36, Yoshikazu Aoyama wrote: > 青山です。 > > ボタンを押してもテーブルの内容がAjaxで更新されない、ということでしょうか? > データの再取得後、AjaxRequestTargetに再描画したいコンポーネントを > addComponent()すれば再描画されると思います。 > > 2012/2/20 藤原 高明 <t_fujih****@comte*****>: >> お世話になっております。藤原と申します。 >> 先日は質問にご返答いただきありがとうござました。 >> >> 現在、DataViewとAjaxPagingNavigatorを使用して、 >> ページングのできるテーブルを作成しております。 >> テーブルの内容はDBに接続して取得しているのですが、 >> テーブルの中身を再取得した際に、 >> AjaxPagingNavigatorが生成するJavaScriptが更新されずに困っております。 >> (検索項目とその結果を表示するテーブルがあるイメージです。) >> >> DataProviderを使用してテーブル内の項目にセットしているモデルの中身を更新して >> いるのですが、 >> 何か根本的に間違っているのでしょうか。 >> 拙い質問で申し訳ございませんが、お力を貸していただけると助かります。 >> 何卒よろしくお願いいたします。 >> >> >> //以下ソースです。 >> //一覧表の設定 >> BaseListDataProvider ListDP = new BaseListDataProvider(); >> final DataView<DummyBean> baseView = new DataView<DummyBean>("BaseList", >> ListDP, 10){ >> @Override >> protected void populateItem(Item<DummyBean> item) { >> // TODO 自動生成されたメソッド・スタブ >> DummyBaseBean base = item.getModelObject(); >> item.add( new Label("Id", new PropertyModel<DummyBean>(base, >> "strId"))); >> } >> }; >> >> //DataView内のItem要素は毎回破棄せずに再利用する >> baseView.setItemReuseStrategy(new ReuseIfModelsEqualStrategy()); >> >> //DataViewにAjaxPagingNavigatorを利用する場合 >> //DataViewをWebMarkupContainerに配置する。(親要素が必要) >> WebMarkupContainer viewContainer = new WebMarkupContainer("Container"); >> // Ajaxで書き換える要素指定 >> viewContainer.setOutputMarkupId(true); >> viewContainer.add(baseView); >> add(viewContainer); >> >> // Paging設定 >> final AjaxPagingNavigator listNavigator = new >> AjaxPagingNavigator("navigator", baseView); >> listNavigator.setOutputMarkupId(true); >> add(listNavigator); >> >> >> //フォーム >> Form<Void> searchForm = new Form<Void>("SearchForm"); >> >> Button searchButton = new Button("SearchButton"){ >> @Override >> public void onSubmit(){ >> // ボタン押下でテーブル内容更新 >> ListDP.changeData(); >> } >> }; >> sarchForm.add(searchButton); >> add(searchForm); >> >> >> ****************************************************** >> キッセイコムテック株式会社 メディカルシステム事業部 >> 第2SIグループ 藤原高明 >> 〒390-1293 長野県松本市和田4010-10 >> TEL: 0263-60-1340 (直通) 0263-40-1122(代) >> FAX:0263-48-1284 >> MAIL:t_fujih****@comte***** >> ****************************************************** >> >> _______________________________________________ >> Wicket-ja-user mailing list >> Wicke****@lists***** >> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > > _______________________________________________ > Wicket-ja-user mailing list > Wicke****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user