2016-01-21 26 views

回答

2

我猜你的意思是,如果(例如)你有分别显示名字和姓氏的“名字”和“姓氏”列,你想点击“姓氏”排序,这实际上按照“First Name”的顺序对表格进行排序?

如果是这样,您可以使用单元格模板来完成此操作。

假设你有如下表:

enter image description here

,当你排序的“姓”列,它实际上会在“名”列中的数据的顺序排序表。

假设下面的数据:

$scope.gridOptions.data = [{ 
    "firstName": "David", 
    "lastName": "Carney", 
}, { 
    "firstName": "Bob", 
    "lastName": "Wise", 
}, { 
    "firstName": "Peter", 
    "lastName": "Thompson", 
}]; 

定义你的columnDefs如下:

$scope.gridOptions.columnDefs = [{ 
    name: 'firstName', 
    field: 'firstName' 
}, { 
    name: 'lastName', 
    field: 'firstName', 
    cellTemplate: '<div class="ui-grid-cell-contents">{{row.entity.lastName}}</div>' 
}]; 

第二列名的列定义列“姓”和电池模板确保lastName属性显示在单元格中,但由于该列的field绑定到firstName,这意味着该列在排序时会按firstName排序。

可以找到一个例子here。对第二列(姓氏)进行排序,并且行将按照第一列(名字)的顺序实际排序。

+0

谢谢,这工作完美! – accasio

+0

在这种情况下,您甚至必须覆盖“lastName”列定义的可编辑单元格模板 –

1

网格将偶数行作为参数以及字段值传递给排序函数。它调用排序功能的一些事情象下面这样:

sortFn(propA, propB, rowA, rowB, direction); 

您可以使用此额外的信息来对数据进行排序适当。

您可以通过colDef的sortedAlgorithm属性指定sortFunc。

发生这种情况从ui网格版本3.0.7

相关问题