Проблема сортировки 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