2018年1月16日 星期二

ag-grid 更新部分資料方法

$scope.gridOptions.api.redrawRows({ rowNodes: [$scope.focusNode ] }); // 更新畫面部分node
$scope.gridOptions.api.redrawRows(); // 更新畫面所有node
$scope.gridOptions.api.updateRowData({ remove: [$scope.selectData] }); // 刪除資料
$scope.gridOptions.api.updateRowData({ add: result.data, addIndex: 0 }); // 加入資料
$scope.focusNode.setData($scope.selectData); // 資料內容異動更新回node(若有用到cellRenderer則不會重新render,還是要搭配redrawRows)

$scope.gridOptions = {
onCellFocused: function (event) {             
                $scope.focusNode = $scope.gridOptions.api.getModel().rowsToDisplay[event.rowIndex];
            },

PS. setData 不會再次觸發 checkboxSelection 自訂函數,需搭配 redrawRows
PS. redrawRows 會造成 focus 跑掉,若要設定setFocusedCell 必須放在下面執行
var firstCol = $scope.gridOptions.columnApi.getAllDisplayedColumns()[1];
$scope.gridOptions.api.setFocusedCell($scope.focusNode.rowIndex, firstCol);

沒有留言:

input 連結 datalist 用程式控制彈出選項

範例: nextTick(() => document.querySelector('input').showPicker());  ※僅支援現代瀏覽器