加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何使用ag-grid动态显示列

发布时间:2020-12-17 06:51:13 所属栏目:安全 来源:网络整理
导读:我是 angularjs技术的新手.我正在使用ag-grid并想要动态显示列 我的json数据是: [{Date:'12-12-2015',Name:'ammu',mark:20},{Date:'12-12-2015',Name:'appu',mark:24},Name:'anu',mark:27},{Date:'13-12-2016',mark:23},{Date:'13-12-2015',mark:20}] 我的
我是 angularjs技术的新手.我正在使用ag-grid并想要动态显示列

我的json数据是:

[{Date:'12-12-2015',Name:'ammu',mark:20},{Date:'12-12-2015',Name:'appu',mark:24},Name:'anu',mark:27},{Date:'13-12-2016',mark:23},{Date:'13-12-2015',mark:20}]

我的预期输出是
Expected Output

现有守则如下

$scope.gridOptions = {
    columnDefs: [],enableFilter: true,rowData: [],rowSelection: 'multiple',rowDeselection: true
};
 $scope.customColumns = [];
Getdetails();
function Getdetails()
{
    masterdataFactory.Getdetails()
     .success(function (Student) {
        f (Student.length != 0) {
             for(var i=0;i<Student.length;i++) {
                 $scope.customColumns.push(
                     {
                         headerName: Student[i].Name,field: "Mark",headerClass: 'grid-halign-left'

                     }
                 );
             };
            $scope.gridOptions.columnDefs = $scope.customColumns;
            $scope.gridOptions.rowData = Student;
            $scope.gridOptions.api.setColumnDefs();
          }                 
     })
      .error(function (error) {
          $scope.status = 'Unable to load data: ' + error.message;
      });
}

现有产出如下
Existing Output

如何从现有输出到达我的预期输出

解决方法

首先安排json数据

[{Date:'12-12-2015',ammu:20,appu:24,anu:27},{Date:'13-12-2016' ammu:23,anu:20}]

为此我正在使用以下代码

function generateChartData() {
             var chartData = [],categories = {};
             debugger;
             for ( var i = 0; i <Student.length; i++ ) {
                 var newdate = Student[ i ].Date;
                 var Name=Student[ i ].Name;
                 var Mark=Student[ i ].Mark;
                // add new data point
                 if ( categories[ newdate ] === undefined ) {
                     categories[ newdate ] = {
                         DATE: newdate
                     };
                     chartData.push( categories[ newdate ] );
                 }

                 // add value to existing data point

                 categories[ newdate ][ Name] = Mark;
             }

             return chartData;
         }

网格选项如下:

$scope.gridOptions = {
             columnDefs: coldef(),rowDeselection: true,enableColResize: true,}
           };
        $scope.gridOptions.columnDefs = $scope.customColumns;
        $scope.gridOptions.rowData =generateChartData();
        $scope.gridOptions.rowData = generateChartData();
}

列定义是动态的,如下所示

function coldef()
{
    for(var i=0;i<headers.length;i++) {
        debugger;
        $scope.customColumns.push(
                              {
                                  headerName: headers[i],field:headers[i],headerClass: 'grid-halign-left',width:180,filter: 'set',});
        } }

在这个标题中是一个数组.此数组包含不同的学生姓名

var headers=new Array();
 headers[0]="DATE";
 var Names= Student.map(function (item) { return item.Name}); 
 Names= Names.filter(function (v,i) { return Names.indexOf(v) == i; }); 
         for(var i=1;i<=Names.length;i++)
         {
             headers[i]=Names[i-1];
         }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读