我正在尝试以编程方式更新Angular网格ng-grid上的gridOptions.sortInfo,但我无法使其正常工作。
我有“名字”和“年龄”栏目。我最初在“名称”列上设置排序,但是想加载一些新数据然后更新它以对“年龄”进行排序。 (以编程方式,而不仅仅是单击列标题)。
我可以将$ scope.gridOptions.sortInfo设置为新值,但网格不会反映这一点。更新gridOptions.sortInfo的正确方法是什么?
请参阅plunker:
http://plnkr.co/edit/JBYnrwLAIwFSKS6uSAND?p=preview
编辑:请注意我希望能够更新排序方向,即升序/降序以及要排序的实际列。
非常感谢
答案 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;