Проблема сортировки Dojo DataGrid (EnhancedGrid)

У меня есть DataGrid, созданный программно и загруженный из ItemFileReadStore. Я хочу, чтобы первый столбец DataGrid всегда сортировался в порядке убывания и был отключен для пользователя для сортировки. Любой другой столбец должен быть доступен для сортировки как вторичный.

Я не хочу предоставлять пользователям такую ​​мощную (сложную и запутанную) функцию, как сортировка по нескольким столбцам, потому что в моей сетке слишком много столбцов.

Таким образом, это должен быть один сортируемый столбец для пользователя и еще один столбец "уже отсортированный".

Кто-нибудь знает, как этого можно достичь? Благодарю.

1 ответ

Чтобы отсортировать первый столбец, добавьте "sortInfo:-1" при создании объекта.

Чтобы разрешить сортировку сетки из любых других столбцов, но не по первым, необходимо перезаписать функцию canSort. Для создания вашей сетки теперь должен выглядеть вот так.

dijit.grid.DataGrid({
  canSort: function (sortInfo) {
                if (Math.abs(sortInfo) == 1){
                    return false;
                } else {
                    return this.inherited("canSort", arguments);
                }
            },
  sortInfo: -1,    .....

Если вам нужно отсортировать по нескольким столбцам, вам нужен dojox.grid.enhanced.plugins.NestedSorting. http://dojotoolkit.org/reference-guide/1.7/dojox/grid/EnhancedGrid/plugins/NestedSorting.html

Другие вопросы по тегам