你如何更新ng-grid gridOptions.sortInfo?

时间:2013-07-15 14:48:40

标签: angularjs ng-grid

我正在尝试以编程方式更新Angular网格ng-grid上的gridOptions.sortInfo,但我无法使其正常工作。

我有“名字”和“年龄”栏目。我最初在“名称”列上设置排序,但是想加载一些新数据然后更新它以对“年龄”进行排序。 (以编程方式,而不仅仅是单击列标题)。

我可以将$ scope.gridOptions.sortInfo设置为新值,但网格不会反映这一点。更新gridOptions.sortInfo的正确方法是什么?

请参阅plunker:

http://plnkr.co/edit/JBYnrwLAIwFSKS6uSAND?p=preview

编辑:请注意我希望能够更新排序方向,即升序/降序以及要排序的实际列。

非常感谢

3 个答案:

答案 0 :(得分:11)

是的,根据源代码(这里的第128行link),您应该可以这样做:

$scope.updateSortInfo = function() {
  $scope.gridOptions.sortBy('name');
}

吸虫表明它有效。我forked it here

以下是从文本框传入sortColumn的另一个版本:plunker

答案 1 :(得分:5)

如果您在同一列上拨打$scope.gridOptions.sortBy()两次,则会按降序排序。

答案 2 :(得分:2)

看看这个:http://ui-grid.info/docs/#/api/ui.grid.class:GridOptions.columnDef

搜索此文:

<强>排序 排序信息的对象,属性是:

我需要按照desc顺序在开头的id列进行排序,这对我来说很有用:

var columnsDef = [
            {name:'id',width:50,sort: {
                direction: 'desc',
                priority: 0
            }},
            {name:'title',width:350},
            {name:'address'},
            {name:'date',width:150},
            {name:'description',minWidth:450}
        ];
$scope.theGrid.columnDefs = columnsDef;