2016-09-27 85 views
0

我寫了一個cellClass函數rowSpanCellClass來實現類似HTML rowspan的東西。在使用rowSpanCellClass的列中重複一個值時,具有重複值的單元格將顯示爲垂直合併。如何獲取ui-grid cellClass函數在重新排序後調用所有可見行?

當網格最初呈現時,這工作正常。但是,如果我顛倒了不同列的排序順序(docNum),則不會爲每行調用rowSpanCellClass。因此,rowSpanCellClass列中的一個單元格的類在應該更改時不會更改。

這裏是simple plunker展示我的問題。

如果您對文檔民標題點擊兩次扭轉最初的排序順序,輸出到控制檯顯示rowSpanCellClass被稱爲所有行除與rowRenderIndex行= 3

我相信行因爲在行被重新排序時它不會改變。 rowSpanCellClass需要爲所有行調用,因爲單元類不僅取決於當前行值,而且取決於相鄰行值。

我試圖強迫cellClass函數被調用的每一行上用下面的代碼

$scope.gridOptions.onRegisterApi = function (gridApi) { 
     gridApi.core.on.sortChanged($scope, function (grid, sortColumns) { 
      gridApi.core.notifyDataChange(uiGridConstants.dataChange.ALL); 
     }); 
    }; 

然而,行前sortChanged事件觸發的重新排序,所以這是行不通的。

我能做些什麼來讓rowSpanCellClass在所有可見行被調用之後被調用?

回答

0

我通過使用自定義單元格模板和ng-class而不是cellClass來解決此問題。

cellTemplate: '<div ng-class="grid.appScope.rowSpanCellClass(grid, row, col)" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}</div>'} 

的變化是在這個plunkr

相關問題