3

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

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

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

请看plunker:

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

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

非常感谢

4

3 回答 3

11

是的,根据源代码(此处为第 128 行链接),您应该可以这样做:

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

plunker表明它有效。我把它叉在这里

这是从文本框中传入 sortColumn 的另一个版本:plunker

于 2013-07-15T16:10:04.313 回答
5

事实证明,如果您$scope.gridOptions.sortBy()在同一列上调用两次,它将按降序排序。

于 2014-07-25T04:43:56.660 回答
2

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

搜索此文本:

sort 排序信息的对象,属性有:

我需要在开头按 id 列按 desc 顺序排序,这对我有用:

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;
于 2015-08-11T22:26:27.257 回答