简体   繁体   English

如何使用ag-grid加载动态列和行?

[英]How to load dynamic column and rows by Using ag-grid?

Html Code : HTML代码:

 <div class="panel-body" style="padding-bottom:0px">
     <div id="myGrid" ag-grid="gridOptions" class="ag-fresh" style="height: 100%;"></div>
</div>

Angular Code : 角度代码:

var sqdtApp = angular.module("sqdtApp", ['ngTouch',
        'ui.grid', 'ui.grid.pagination', 'ui.grid.resizeColumns',
        'angularUtils.directives.dirPagination', 'ngAnimate', 'ui.bootstrap', 'agGrid']);
sqdtApp.controller(
                    'importedtableCtrl',
                    function ($http, $scope, $stateParams,$rootScope, $httpParamSerializer, uiGridConstants) {
                        $scope.dbtype = $stateParams.dbname;
                    $scope.columns = [];


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

                    $http.post($scope.url + "/importedtablesCount", { 'dbname': $stateParams.dbname })
                                .success(
                                        function (result) {
                                            $scope.importedTableCount = result;
                                        });


                    var gridtablename = "";
                    $scope.currentImportedTableName = '';


                    $scope.loadTableInGrid = function (tablename) {
                        $scope.currentImportedTableName = tablename;
                        if (gridtablename != tablename) {
                            $scope.reset();
                            gridpageno = 1;
                            $http.post($scope.url + "/getPagingRecordImportedTable", { 'dbname': $stateParams.dbname, 'tableName': tablename, 'pageNumber': 1 }).success(
                                function (response) {
                                    $scope.names = response.records;
                                    $scope.mdata = response.metadata;
                                    //  $scope.gridOptions.data = response.records;
                                    var columnsize = 0;

                                    console.log($scope.customColumns);
                                    for (var obj in $scope.mdata) {
                                        if ($scope.mdata[obj]['columnsize'] > 20) {
                                            columnsize = 20;
                                        } else {
                                            columnsize = $scope.mdata[obj]['columnsize'];
                                        }
                                        $scope.customColumns.push({
                                            headerName: $scope.mdata[obj]['columnname'],
                                            field: $scope.mdata[obj]['columnname'],
                                            headerClass: 'grid-halign-left'

                                        });

                                        }

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





                                    gridtablename = tablename;
                                    gridpageno = 1;



                                    $scope.getTotalNoOfRecordCountForGrid(tablename);
                                }).error(function (data) {
                                    alert(data);
                                });
                        } else {
                            $scope.reset();
                            $scope.resetGridTableName();
                            }
                        };
});

Output No Rows to Show 输出无行显示
no rows to show is output 没有要显示的行输出

but if i check in $scope.gridoptions object all the rows and column are there. 但是,如果我签入$scope.gridoptions对象,则所有行和列都在那里。

$scope.gridOptions object in console with data 带有数据的控制台中的$ scope.gridOptions对象

but it not rendering in page. 但它不会在页面中呈现。 help me out. 帮帮我。

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

Those are very likely the culprits : columnsDefs and rowData are only for grid initialisation before the ready event. 这些很可能是罪魁祸首:columnsDefs和rowData仅在ready事件之前用于网格初始化。

Use gridOptions.api.setColumnDefs and gridOptions.api.setRowData to interact with the grid once it's initialized 初始化网格后,使用gridOptions.api.setColumnDefs和gridOptions.api.setRowData与网格进行交互

Documentation : https://www.ag-grid.com/angular-grid-api/index.php 文档: https : //www.ag-grid.com/angular-grid-api/index.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM