musi jiukora
jiuko****@gmail*****
2009年 4月 30日 (木) 23:26:51 JST
沖野様 下記で実現することができました。 ありがとうございます!! 2009/04/30 23:18 shinya okino <shiny****@gmail*****>: > 沖野です。 > DataTableをページのインスタンスフィールドにすれば良いと思います。 > > public class TestPage extends WebPage { > > private DataTable dataTable; > > public TestPage() { > List<IColumn> columns = new ArrayList<IColumn>(); > columns.add(new AbstractColumn(new ResourceModel("index")) { > @Override > public void populateItem(Item cellItem, String > componentId,IModel rowModel) { > int offset = dataTable.getCurrentPage() * > dataTable.getRowsPerPage(); > cellItem.add(new Label(componentId, new Model(((Item) > cellItem.findParent(Item.class)).getIndex()+ offset + 1))); > } > }); > columns.add(new PropertyColumn(new ResourceModel("・・・")); > dataTable = new DataTable("table2", columns, new > DataProvider(XXXX), 10); > add(dataTable); > } > } > > 他にはpopulateItemメソッドの中で > DataTable dataTable = (DataTable) TestPage.this.get("table2"); > と書いてTestPageにaddしたDataTableを取ってくる方法もあります。 > フィールドにした方がわかりやすいとは思いますが。 > > > 2009/04/30 22:43 musi jiukora <jiuko****@gmail*****>: > > 沖野様 > > > > koohziです。早速の回答ありがとうございます。 > > > > > 下記の方法で実現できそうな感じがするのですが、この方法ですと、columnsの追加前にDataTableのインスタンスが生成されている必要があると思うのですが、出来るのでしょうか? > > > > > -------------------------------------------------------------------------------- > > List<IColumn> columns = new ArrayList<IColumn>(); > > > > CustomDataTable dataTable; > > > > columns.add(new AbstractColumn(new ResourceModel("index")) { > > public void populateItem(Item cellItem, String componentId, IModel > > rowModel) { > > int offset = dataTable.getCurrentPage() * > > dataTable.getRowsPerPage(); // ★インスタンス化されてないのでエラー > > cellItem.add(new Label(componentId, new > > Model(((Item)cellItem.findParent(Item.class)).getIndex() + offset + 1))); > > } > > }); > > ・・・ > > columns.add(new PropertyColumn(new ResourceModel("・・・")); > > add(dataTable = new DataTable("table2", columns, new DataProvider(XXXX), > > 10)); > > > -------------------------------------------------------------------------------- > > > > dataTableの生成を前に持ってくると、columnsがnullなのでランタイムエラーとなってしまいます。 > > > > > > 当方の基本知識が足りないのかも知れませんが、ご教授いただければと思います。 > > > > > > > > 2009/04/30 22:17 shinya okino <shiny****@gmail*****>: > >> > >> 沖野です。 > >> > >> DataTableクラスにgetCurrentPage(),getRowsPerPage()という > >> ページ位置とページの行数を取得するメソッドがあるので掛けて足せば全体のindexになります。 > >> > >> public void populateItem(Item cellItem, String componentId,IModel > >> rowModel) { > >> int offset = dataTable.getCurrentPage() * dataTable.getRowsPerPage(); > >> cellItem.add(new Label(componentId, new Model(((Item) > >> cellItem.findParent(Item.class)).getIndex()+ offset + 1))); > >> } > >> > >> > >> 2009/04/30 21:03 musi jiukora <jiuko****@gmail*****>: > >> > はじめまして。koohziと申します。 > >> > > >> > DataTableを使用して以下のようなページングの表を作成したいと考えています。 > >> > > >> > << < 1 2 3 4> >> > >> > No. d1 d2 d3 > >> > --------------- > >> > 1 a b c > >> > 2 d e f > >> > 3 g h i > >> > > >> > d1〜d3はあるモデルで表示させます。 > >> > No.に関しては行のindexを表示したいので、以下のように実装してみました。 > >> > > >> > 【参考サイト】 > >> > > >> > > http://www.mail-archive.com/wicke****@lists*****/msg31462.html > >> > > >> > > -------------------------------------------------------------------------------- > >> > columns.add(new AbstractColumn(new ResourceModel("index")) { > >> > public void populateItem(Item cellItem, String componentId, IModel > >> > rowModel) { > >> > cellItem.add(new Label(componentId, new > >> > Model(((Item)cellItem.findParent(Item.class)).getIndex() + 1))); > >> > } > >> > }); > >> > > >> > > -------------------------------------------------------------------------------- > >> > > >> > 上記でうまく行きそうなんですが、2ページ目に遷移すると > >> > No.が1から始まってしまいます。できればこれを4からはじめたいと考えています。 > >> > > >> > なにかエレガントな方法があるのでしょうか? > >> > そもそもDataTableはこういったものが不得意なんでしょうか? > >> > ListViewだと簡単にできるのに。。。 > >> > > >> > > >> > 以上、よろしくお願いいたします。 > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > _______________________________________________ > >> > Wicket-ja-user mailing list > >> > Wicke****@lists***** > >> > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > >> > > >> > > >> > >> > >> > >> -- > >> 沖野信也 > >> shiny****@gmail***** > >> > >> _______________________________________________ > >> 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 > > > > > > > > -- > 沖野信也 > shiny****@gmail***** > > _______________________________________________ > Wicket-ja-user mailing list > Wicke****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user > -------------- next part -------------- HTMLの添付ファイルを保管しました... Download