4

私が見つけたほとんどの例を嘲笑したので、私は立ち往生しています。アプリケーションを起動すると返されるのは次のとおりです。 グリッドからの出力

package.jsonところで:

"ag-grid": "^15.0.0",
"ag-grid-angular": "^15.0.0",

次のように呼び出すグリッド コンポーネント ラッパー (CS-Grid) を作成しました。

<cs-card card-title="Grid (Grid Component)">
  <section card-content>
    <cs-grid #AgGrid class="cs-sort-agrid cs-grid-table"
             [gridOptions]="gridOptions" 
             style="width: 900px; height: 115px;"></cs-grid>
  </section>
</cs-card>

CS-Grid HTML:

<ag-grid-angular #agGrid class="ag-fresh cs-grid-float" [gridOptions]="gridOptions"
[ngStyle]="{'height.px':height}">
</ag-grid-angular>

CS-Grid TS:

import { GridOptions } from 'ag-grid/main';
import { Component,Input,ViewChild } from '@angular/core';

    @Component({
      selector: 'cs-grid',
      templateUrl:'./grid.component.html',
      styleUrls: ['./grid.component.scss']
    })
    export class CSGridComponent {
       @Input('gridOptions') gridOptions;
       @Input('height') height=400; 
       @ViewChild('agGrid') gridElement;
       constructor(){
       }
       getNativeElement(){
         let nativeEle=this.gridElement._nativeElement;
         return nativeEle;
       }
    }

さて、作業は CS-Grid を呼び出すアプリケーションにあります。HTML は上にあるので、TS は次のようになります。

import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { CSPageComponent } from '@CSWeb/CSUILibrary';
import { GridOptions } from 'ag-grid/main';
import { CSEventHubs, CSTabBarService } from '@CSWeb/MainService';
import { CSTagDef, CSTagPresentationDef, TagSelectorCategory, TagSelectorEntity } from '@CSWeb/Metadata';

@Component({
  selector: 'cs-elements-page',
  templateUrl: './elements-page.component.html',
  styleUrls: ['./elements-page.component.scss']
})
export class ElementsPageComponent extends CSPageComponent implements OnInit {
  gridOptions: GridOptions;
  columnDefs;
  rowData;
  gridApi: any;
  @ViewChild('AgGrid') gridElm;

  constructor() {
  }

  ngOnInit() {
    this.gridOptions = <GridOptions>{};
    this.gridOptions.onGridReady = (params) => {
      this.gridApi = params.api;
      this.initGrid();
    }
  }

  initGrid() {
    this.columnDefs = [
      { headerName: 'Make', field: 'make', minwidth: 100 },
      { headerName: 'Model', field: 'model', minwidth: 100 },
      { headerName: 'Price', field: 'price', minwidth: 100 },
    ];
    this.gridOptions.columnDefs = this.columnDefs;

    this.rowData = [
      { make: 'Toyota', model: 'Celica', price: 35000 },
      { make: 'Ford', model: 'F150', price: 55000 },
      { make: 'Toyota', model: 'RAV4', price: 35000 },
      { make: 'Chevrolet', model: 'Cheyene', price: 53000 },
      { make: 'Ford', model: 'Mondero', price: 32000 },
      { make: 'Porsche', model: 'Boxter', price: 72000 },
      { make: 'Honda', model: 'Hawk', price: 2000 },
      { make: 'Yamaha', model: '900', price: 3000 },
      { make: 'ToysRUs', model: 'Tricycle', price: 80 },
      { make: 'ToysRUs', model: 'RollerSkates', price: 30 }
    ];
    this.gridOptions.rowData = this.rowData;

    this.gridOptions.enableFilter = true;
    this.gridOptions.enableSorting = true;
    this.gridOptions.enableColResize = true;
    this.gridOptions.rowModelType = 'infinite';
    this.gridOptions.pagination = true;
    this.gridOptions.paginationPageSize = 20;
    this.gridOptions.cacheBlockSize = 20;
    this.gridOptions.rowHeight = 30;
    this.gridOptions.maxBlocksInCache = 1;
  }
}

何か単純なものが欠けていると思わずにはいられません。何か案は?

前もって感謝します!

4

1 に答える 1