我有一個Gwt celltable。點擊標題將列正確排序。 但在頁面加載時,默認情況下不對列進行排序。 我想在頁面加載時使最右邊的列進行排序。Gwt celltable在列上調用排序
回答
可以使用getColumnSortList(),推動要排序的列,因爲這樣的:
dataGrid.getColumnSortList().push(columnToSortBy);
該表將按照升序給定的列進行排序。
調用這個方法兩次,將觸發一個檢查來測試給定的列是否已經推送到列表中,如果是的話,它將按照降序排列,以便按降序排列列表使用:
dataGrid.getColumnSortList().push(columnToSortBy);
dataGrid.getColumnSortList().push(columnToSortBy);
幕後,將柱推到稱爲ColumnSortList表格中的內部列表至位置0的同一列表被更新每個列標題點擊。
確保在初始化列後調用此方法。
我建議你檢索你要顯示的數據已經排序。如果是這樣的話,你那麼只需要設置正確的排序圖標(上升或下降):
/**
* Displays the appropriate sorted icon in the header of the column for the given index.
*
* @param columnIndex
* of the column to mark as sorted
* @param ascending
* <code>true</code> for ascending icon, <code>false</code> for descending icon
*/
public void setSortedColumn(int columnIndex, boolean ascending) {
Column<T, ?> column = table.getColumn(columnIndex);
if (column != null && column.isSortable()) {
ColumnSortInfo info = table.getColumnSortList().push(column);
if (info.isAscending() != ascending) {
table.getColumnSortList().push(column);
}
}
}
如果數據無法獲取,你可以在列表中,您這樣做時,以同樣的方式進行排序之前進行排序用戶在顯示它之前單擊標題(onColumnSort(ColumnSortEvent event)
與Comparator
)。
您的代碼非常有幫助。謝謝。 – slugmandrew
這對於確保默認排序在使用Jeff Allen解決方案時不會在升序和降序之間循環很有用。 –
澄清夫婦現有的答案......一個cellTable
的排序列表(由getColumnSortList()
功能訪問)的唯一決定了表格標題的狀態,但實際上並沒有任何數據進行排序。
正如@ z00bs建議的那樣,如果可能的話,在外部對數據進行排序可能是明智的。如果您知道數據將被預先排序,那麼您應該使用getColumnSortList().clear()
和getColumnSortList().push()
函數來向用戶傳達數據如何排序。
但是,如果您希望CellTable對數據進行實際排序,則需要觸發事件來強制CellTable對組成數據客戶端進行實際排序。要做到這一點,您可以使用狀態ColumnSortEvent.fire()
方法,因爲這樣的:
ColumnSortEvent.fire(myTable, myTable.getColumnSortList());
這將觸發該處理基於頭的當前狀態的數據排序的事件。因此,您可以首先設置標題的所需初始排序狀態,然後執行此行以實際使數據排序反映標題中表示的當前排序狀態。
- 1. Celltable GWT排序
- 2. GWT CellTable排序
- 3. GWT CellTable列調整大小/排序
- 4. GWT CellTable排序arow所有可排序列上的圖標
- 5. GWT CellTable排序列自定義頭
- 6. CELLTABLE在GWT
- 7. GWT CELLTABLE:如何設置celltable header上的降序圖標?
- 8. GWT CellTable - 設置列寬
- 9. GWT CellTable驗證
- 10. GWT CellTable wordwrap
- 11. GWT CellTable樣式
- 12. GWT Celltable reset
- 13. GWT CellTable與ImageResourceCell
- 14. GWT RequestFactory + CellTable
- 15. GWT:如何在CellTable上實現過濾?
- 16. Gwt,CellTable,我怎麼知道哪列用戶點擊進行排序?
- 17. GWT - 使CellTable Cell使用HTML?
- 18. GWT - CellTable/DataGrid使用ImageCell
- 19. GWT CellTable調整佈局的高度
- 20. 排序GWT celltable中的不同屬性Widget
- 21. GWT CellTable - 從標題中刪除排序箭頭
- 22. GWT 2.4 CellTable問題
- 23. GWT 2.1 CellTable列標題點擊事件
- 24. GWT CellTable/DataGrid - 如何檢測列選擇?
- 25. GWT CELLTABLE列的單元值更新
- 26. GWT CellTable - 根據行添加列
- 27. 將行號列添加到GWT CellTable
- 28. GWT cellTable - 新的行處理程序?
- 29. 在Celltable上過濾
- 30. 可排序CellTable列未響應的頁眉
我如圖所示連續調用兩次push(),但是,雖然箭頭顯示它已排序兩次,但實際數據卻不是。想不到爲什麼會發生這種情況。 – slugmandrew
同樣在這裏,我不知道爲什麼 –
我有這個問題,只是發佈解決方案作爲替代答案。 –