Dojo DataGrid(EnhancedGrid)排序问题

时间:2012-08-06 10:57:56

标签: sorting dojo dojox.grid.datagrid

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

我不想为用户提供如此强大(复杂且令人困惑)的功能,因为按多列排序,因为我的网格中有太多列。

因此,它应该是用户的一个可排序列,另一个是“已经排序的不可排序”列实际上。

有谁知道如何实现这一目标? 感谢。

1 个答案:

答案 0 :(得分: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