2016-01-21 84 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

相關問題