[Wicket-ja-user 612] Re: AjaxPagingNavigatorの更新について

Back to archive index

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




Wicket-ja-user メーリングリストの案内
Back to archive index