我想在网格中显示数据,点击角网格栅按钮。当用户单击“搜索”按钮时,我参考了wiki页面 &许多在线文章来显示网格数据。
在我的应用程序(所以是共享代码 )中理解和实现这个功能需要花费很多时间。这可能对其他人有益,甚至其他人也能分享更好的答案。
我的代码是
import { Component, OnInit } from '@angular/core';
import { Column, FieldType, Formatter, Formatters, GridOption } from 'angular-slickgrid';
export class ReportComponent implements OnInit {
columnDefinitions: Column[];
gridOptions: GridOption;
dataset: any[];
ngOnInit(): void
{
this.gridOptions = {
autoResize: {
containerId: 'demo-container',
sidePadding: 15
},
enableAutoResize: false,
enableExcelCopyBuffer: true,
};
this.columnDefinitions = [
{ id: 'value', name: 'Temperature', field: 'value', sortable: true, type: FieldType.string, width: 70 } ,
{ id: 'High_value', name: 'High value', field: 'High_value', sortable: true, type: FieldType.string, width: 70 },
{ id: 'Low_value', name: 'Low value', field: 'Low_value', sortable: true, type: FieldType.string, width: 70 },
];
}
Search(rangeFrom,rangeTo)
{
this.dataset = [];
this._Dataservice.getHistoricalData(1,rangeFrom.value, rangeTo.value ).then (
data => {
if (data)
{
let i:number =0;
for (let stat of data)
{
i++;
this.dataset[i] = {
id: i,
value: stat.value,
High_value: stat.High_value,
Low_value: stat.Low_value,
};
}
}
else
this.alertService.error("No data");
}
)
}我的html
<angular-slickgrid gridId="grid2" style="width:95%;"
[columnDefinitions]="columnDefinitions"
[gridOptions]="gridOptions"
[dataset]="dataset">
</angular-slickgrid>我使用的版本:angular-slickgrid:jQuery:^3.3.1 @angular/core:^2.1.5 @angular/core:^7.2.0
发布于 2019-01-18 05:34:53
以下是我所做的改变。我添加了angularGridReady()方法来获取网格的引用&数据赋值后称为angularGrid.dataView.refresh()方法。
export class ScadaReportComponent implements OnInit {
angularGrid: AngularGridInstance;
angularGridReady(angularGrid: AngularGridInstance) {
this.angularGrid = angularGrid;
console.log('Ready');
}
this._Dataservice.getHistoricalData(1,rangeFrom_date, rangeTo_date ).then (
data => {
if (data)
{
for (let stat of data)
{
this.dataset[i] = {
id: i,
value: stat.value,
High_value: stat.High_value,
Low_value: stat.Low_value,
};
}
this.angularGrid.dataView.refresh();
}Html代码更改如下&我的代码开始工作。
<angular-slickgrid gridId="grid2" style="width:95%;"
[columnDefinitions]="columnDefinitions"
[gridOptions]="gridOptions" (onAngularGridCreated)="angularGridReady($event)"
[dataset]="dataset">
</angular-slickgrid>https://stackoverflow.com/questions/54248227
复制相似问题