一尘不染

Angular Grid Ag-grid columnDefs动态变化

angularjs

我有关于columnDefs动态更改的问题。这是我的gridOptions:

$scope.gridOptions = {
        columnDefs: [],
        enableFilter: true,
        rowData: null,
        rowSelection: 'multiple',
        rowDeselection: true
    };

当我从服务器检索数据时:

$scope.customColumns = [];

$http.post('/Home/GetProducts', { tableName: 'TABLE_PRODUCT' }).success(function (data) {
    angular.forEach(data.Columns, function (c) {
        $scope.customColumns.push(
            {
                headerName: c.Name,
                field: c.Value,
                width: c.Width
            }
        );
    });

    $scope.gridOptions.columnDefs = $scope.customColumns;

    $scope.gridOptions.rowData = data.Products;
    $scope.gridOptions.api.onNewRows();
}).error(function () {

});

注意:这里c是来自服务器的列对象。

当动态生成列并将其分配给$
scope.gridOptions.columnDefs时,会出现空白网格,但$scope.customColumns数组会填充有正确生成的列对象。请帮助我解决此错误,或者我做错了什么?


阅读 833

收藏
2020-07-04

共1个答案

一尘不染

在ag-
grid中,gridOptions中的列在网格初始化时使用一次。如果在初始化后更改列,则必须告知网格。这是通过调用gridOptions.api.setColumnDefs()

此api方法的详细信息在此处ag-
grid文档
中提供。

2020-07-04