2011-10-26 19 views
0

私はGWTのセルテーブルを持っていて、データベース(Criteria) からソート機能を実装したいのですが、値を取得する方法を知りたいだけですGWT列ソートハンドラ、選択された列の値を取得する方法

をソートするためにクリックされた列のここevent.getColumn()から自分のコード

  ctJobs.addColumnSortHandler(new ColumnSortEvent.Handler() { 
      public void onColumnSort(ColumnSortEvent event) { 
      event.getColumn(); 
      event.getColumn().getValue("what do we need to write here ???"); 

ですが、私はオブジェクト

com.google.gwtの形で列を取得しています。 [email protected]

私はevent.getcolumn()。getvalue( "??");を試しているため、列の名前/値 を知りたいです。 しかし、そのためのパラメータは何か、またはクリックされた列の名前を取得する他の方法があります。

おかげ

答えて

4

あなたのセルテーブル用ListDataProviderまたはAsyncDataProviderを使用していますか?

AsyncDataProviderの場合、サーバー側でソートする必要がありますので、ColumnSortHandlerを追加する必要はありません。

GWT docsを参照してください。

ソートのためにクリックした列の名前を取得するには、questionを参照してください。

+0

のようなクリックされたヘッダーのソートの履歴を取得するおかげで、このシナリオでは、あなたがコンパレータを使用して、それを述べたが、私はSQLからそれをソートする次に、以下のようになります。if(sortDirection.equals( "asc")){ crit.addOrder(Order.asc(sortField)); \t \t}私はちょうど、ユーザーがいくつかの列をクリックすると、選択されている列名を取得することはできませんsortFieldこの文字列を渡したいですか? – junaidp

+0

あなたは大歓迎です。答えへのリンクを追加しました。ソート列の名前を取得する方法について説明しています。 –

1

テーブルの列を作成するときは、列のデータストア名を設定します。

column.setDataStoreName("columnX"); 

AsyncDataProviderに次

final AsyncDataProvider<SQLRow> dataProvider = new AsyncDataProvider<SQLRow>(){ 
    @Override 
    protected void onRangeChanged(HasData<SQLRow> display) { 
     for (int i=0;i<sortList.size();i++) { 
      sortList.get(i).getColumn().getDataStoreName(); 
     } 
    } 
} 
関連する問題