[Wicket-ja-user 326] Re: DataTableで行インデックスの表示する方法について

Zurück zum Archiv-Index

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 



Wicket-ja-user メーリングリストの案内
Zurück zum Archiv-Index