Я использую CellTable для отображения списка файлов (Имя файла, Размер, Тип пантомимы). Я могу сортировать по столбцам индивидуально, нажимая на заголовок, используя следующий код:
Сначала я отмечаю столбцы как сортируемые:
urlColumn.setSortable(true);
mimeColumn.setSortable(true);
sizeColumn.setSortable(true);
Затем я добавляю создать ColumnSortHandler для каждого столбца и добавляю в таблицу вот так:
// Add sorting for the Name column
ListHandler<Asset> urlSortHandler = new ListHandler<Asset>(dataProvider.getList());
urlSortHandler.setComparator(urlColumn, new Comparator<Asset>() {
public int compare(Asset o1, Asset o2) {
....
}
});
table.addColumnSortHandler(urlSortHandler);
// Add sorting for the Size column
ListHandler<Asset> sizeSortHandler = new ListHandler<Asset>(dataProvider.getList());
sizeSortHandler.setComparator(sizeColumn, new Comparator<Asset>() {
public int compare(Asset o1, Asset o2) {
....
}
});
table.addColumnSortHandler(sizeSortHandler);
// Add sorting for the Type column
ListHandler<Asset> mimeSortHandler = new ListHandler<Asset>(dataProvider.getList());
mimeSortHandler.setComparator(mimeColumn, new Comparator<Asset>() {
public int compare(Asset o1, Asset o2) {
...
}
});
table.addColumnSortHandler(mimeSortHandler);
Я добавил несколько журналов и убедился, что запускаются соответствующие обработчики сортировки (то есть, если я нажимаю на имя файла, вызывается только обработчик сортировки имени файла).
Надеюсь, этот пример кода поможет. Если нет, предоставьте пример кода, который может помочь нам лучше диагностировать проблему