私はGwtセルテーブルを持っています。ヘッダーをクリックすると、列が適切に並べ替えられます。ただし、ページの読み込み時に、列はデフォルトで並べ替えられません。ページが読み込まれたときにソートされる右端の列を作成したいと思います。
3 に答える
既存の回答のいくつかを明確にするために... cellTable
(関数によってアクセスされるgetColumnSortList()
)の並べ替えリストは、テーブルのヘッダーの状態を決定するだけで、実際にはデータを並べ替えません。
@ z00bsが示唆しているように、可能であれば、データを外部でソートするのが賢明かもしれません。データが事前に並べ替えられることがわかっている場合は、getColumnSortList().clear()
andgetColumnSortList().push()
関数を使用して、データの並べ替え方法をユーザーに通知する必要があります。
ただし、CellTableで実際にデータを並べ替える場合は、イベントをトリガーして、CellTableに構成データをクライアント側で実際に並べ替えさせる必要があります。これを行うには、次のようにstateColumnSortEvent.fire()
メソッドを使用できます。
ColumnSortEvent.fire(myTable, myTable.getColumnSortList());
これにより、ヘッダーの現在の状態に基づいてデータの並べ替えを処理するイベントがトリガーされます。したがって、最初にヘッダーの目的の初期ソート状態を設定してから、この行を実行して、データの順序にヘッダーに表示されている現在のソート状態を実際に反映させることができます。
getColumnSortList()を使用して、並べ替える列を次のようにプッシュできます。
dataGrid.getColumnSortList().push(columnToSortBy);
テーブルは、指定された列で昇順で並べ替えられます。
このメソッドを2回呼び出すと、指定された列がすでにリストにプッシュされているかどうかをテストするチェックがトリガーされます。プッシュされている場合は、降順で並べ替えられるため、テーブルを列で降順に並べ替えるには、次を使用します。
dataGrid.getColumnSortList().push(columnToSortBy);
dataGrid.getColumnSortList().push(columnToSortBy);
舞台裏では、列はColumnSortListというテーブルの内部リストの位置0にプッシュされます。同じリストは、列ヘッダーがクリックされるたびに更新されます。
列を初期化した後、必ずこのメソッドを呼び出してください。