Sorting Dojo DataGrid(EnhancedGrid)排序问题

Sorting Dojo DataGrid(EnhancedGrid)排序问题,sorting,dojo,dojox.grid.datagrid,Sorting,Dojo,Dojox.grid.datagrid,我有一个DataGrid,通过编程创建并从ItemFileReadStore加载。 我希望DataGrid的第一列始终按降序排序,并为用户禁用以进行排序。任何其他列都可以作为辅助排序表进行排序 我不想给用户提供这样一个强大(复杂而混乱)的功能,比如按多列排序,因为我的网格中有太多的列 所以,对于用户来说,它应该是一个可排序列,而实际上是另一个“已排序不可排序”列 有人知道如何才能做到这一点吗? 谢谢。要对第一列进行排序,请在创建对象时添加“sortInfo:-1” 要允许从任何其他列(而不是第一

我有一个DataGrid,通过编程创建并从ItemFileReadStore加载。 我希望DataGrid的第一列始终按降序排序,并为用户禁用以进行排序。任何其他列都可以作为辅助排序表进行排序

我不想给用户提供这样一个强大(复杂而混乱)的功能,比如按多列排序,因为我的网格中有太多的列

所以,对于用户来说,它应该是一个可排序列,而实际上是另一个“已排序不可排序”列

有人知道如何才能做到这一点吗?
谢谢。

要对第一列进行排序,请在创建对象时添加“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。

要对第一列进行排序,请在创建对象时添加“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。

首先,感谢您的回复!这段代码非常有效,但是在渲染网格之后,当我尝试对任何列进行排序时,“已排序的不可排序”列变为“未排序的不可排序”。显然,我应该使用EnhancedGrid和nestedSorting。但正如我前面提到的,网格中有很多列,我不希望用户与“1,2,3,4…”嵌套排序内容混淆。它应该是按1列进行简单的升序/降序排序(对于用户!!)。有什么想法吗?首先,谢谢你的回复!这段代码非常有效,但是在渲染网格之后,当我尝试对任何列进行排序时,“已排序的不可排序”列变为“未排序的不可排序”。显然,我应该使用EnhancedGrid和nestedSorting。但正如我前面提到的,网格中有很多列,我不希望用户与“1,2,3,4…”嵌套排序内容混淆。它应该是按1列进行简单的升序/降序排序(对于用户!!)。有什么想法吗?