Angular ag grid valueGetter
Angular ag grid valueGetter
我正在尝试制作 ag 网格 table。基本上我有大约 8 列。其中 3 个是用户输入,其余只是基于一些方程式的数学计算。
我认为 valueGetter 将是放置它们(计算)的好地方,但是对于一个单元格,我需要从不同的行获取数据并且麻烦从那里开始。
这是我的列定义,字段 x
的 valueGetter 工作正常,因为它使用来自同一行的数据,但是对于字段 xixi
我必须从前一行获取数据.我尝试过使用 gridApi,但未定义。请帮忙
columnDefs: ColDef[]=[
{field: 'r', width:150, cellEditor: 'agRichSelectCellEditor'},
{field: 'y', width:150, cellEditor: 'agRichSelectCellEditor'},
{field: 'x', width:150, valueGetter: function (params) {
return params.data.r * params.data.y;
}},
{field: 'xixi', width:150, valueGetter: function (params){
if(params.node.rowIndex == 0) {return 0;}
let indexBefore = params.node.rowIndex
if(this.gridApi == undefined){return;}
let dataBefore = this.gridApi.getDisplayedRowAtIndex(indexBefore-1);
let data = params.data.x - dataBefore.x;
return data;}},
{field: 'koef', width:150, cellEditor: 'agRichSelectCellEditor'},
{field: 'proizvod', width:150},
{field: 'deltaY', width:190},
{field: 'delta4y', width:150},
{field: 'proizvodSum', width:150},
]
您的问题有几种解决方案,最简单的解决方案是使用 valueGetter
.[=14= 中 params
参数中提供的网格 API ]
为您的 'xixi' columnDef 使用以下代码:
{
field: 'xixi',
width: 150,
valueGetter: function (params) {
if (params.node.rowIndex == 0) {
return 0;
}
let indexBefore = params.node.rowIndex;
if (params.api == undefined) {
console.log('her');
return;
}
let dataBefore = params.api.getDisplayedRowAtIndex(indexBefore - 1);
let data = params.data.x - dataBefore.data.x;
return data;
},
Demo.
我正在尝试制作 ag 网格 table。基本上我有大约 8 列。其中 3 个是用户输入,其余只是基于一些方程式的数学计算。
我认为 valueGetter 将是放置它们(计算)的好地方,但是对于一个单元格,我需要从不同的行获取数据并且麻烦从那里开始。
这是我的列定义,字段 x
的 valueGetter 工作正常,因为它使用来自同一行的数据,但是对于字段 xixi
我必须从前一行获取数据.我尝试过使用 gridApi,但未定义。请帮忙
columnDefs: ColDef[]=[
{field: 'r', width:150, cellEditor: 'agRichSelectCellEditor'},
{field: 'y', width:150, cellEditor: 'agRichSelectCellEditor'},
{field: 'x', width:150, valueGetter: function (params) {
return params.data.r * params.data.y;
}},
{field: 'xixi', width:150, valueGetter: function (params){
if(params.node.rowIndex == 0) {return 0;}
let indexBefore = params.node.rowIndex
if(this.gridApi == undefined){return;}
let dataBefore = this.gridApi.getDisplayedRowAtIndex(indexBefore-1);
let data = params.data.x - dataBefore.x;
return data;}},
{field: 'koef', width:150, cellEditor: 'agRichSelectCellEditor'},
{field: 'proizvod', width:150},
{field: 'deltaY', width:190},
{field: 'delta4y', width:150},
{field: 'proizvodSum', width:150},
]
您的问题有几种解决方案,最简单的解决方案是使用 valueGetter
.[=14= 中 params
参数中提供的网格 API ]
为您的 'xixi' columnDef 使用以下代码:
{
field: 'xixi',
width: 150,
valueGetter: function (params) {
if (params.node.rowIndex == 0) {
return 0;
}
let indexBefore = params.node.rowIndex;
if (params.api == undefined) {
console.log('her');
return;
}
let dataBefore = params.api.getDisplayedRowAtIndex(indexBefore - 1);
let data = params.data.x - dataBefore.data.x;
return data;
},
Demo.