我建立了一个简单的网格:
第三列中的值是第一列和第二列中的值相乘的结果。
例如:1 * 3 = 3
我的问题是我只想刷新第一行。
(我的第二个问题是第三列中的值在所有行中都发生了更改,而不是在第一行和第二行的新值已更改的特定行中。但是,稍后我将尝试解决此问题。) />
这是刷新网格的代码:
/**THIS CODE IS RESPONSIBLE FOR REFRESHING THE GRID AFTER VALUES HAVE BEEN CHANGED */
private gridApi;
private gridColumnApi;
onGridReady( params) {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
params.api.sizeColumnsToFit();
}
public RefreshRisqueBrutColumn() {
const params = { force: true ,
columns: ['RskBrt'],
rowNodes: [] // specify rows, or all rows by default
};
this.gridColumnApi
this.gridApi.refreshCells(params);
};
}
/**THIS CODE IS RESPONSIBLE FOR REFRESHING THE GRID AFTER VALUES HAVE BEEN CHANGED */
我无法找到一种方法来仅刷新dropdownList值已更改的特定列。
要清楚,这是相关代码:
第一个ColumnOneCellRenderer:html文件
<select class="form-control" (change)=" UpdateRisqueBrut($event.target);" >
<br>
<option >1- Très improbable</option>
<option >2- Peu probable</option>
<option >3- Possible</option>
<option >4- Probable</option>
</select>
<br>
ColumnOneCellRenderer:ts文件
message: number;
constructor(private data: DataService
// , private comp: AppComponent
) { }
ngOnInit() {
}
params: any;
agInit(params: any): void {
this.params = params;
}
public UpdateRisqueBrut(t) {
if (t.value === '1- Très improbable') {
this.data.changeMessage(1);
} else if (t.value === '2- Peu probable') {
this.data.changeMessage(2);
} else if (t.value === '3- Possible') {
this.data.changeMessage(3);
} else if (t.value === '4- Probable') {
this.data.changeMessage(4);
}
}
负责传达所选值的服务 从customCellRenderer到gridComponent:DataService
@Injectable()
export class DataService {
private messageSource = new BehaviorSubject<number>(1);
currentMessage = this.messageSource.asObservable();
private messageSource2 = new BehaviorSubject<number>(1);
currentMessage2 = this.messageSource2.asObservable();
constructor() { }
changeMessage(message: number) {
this.messageSource.next(message);
}
changeMessage2(message: number) {
this.messageSource2.next(message);
}
}
网格组件中的相关ts代码以接收值:
constructor(private data: DataService) { }
message1: number;
message2: number;
ngOnInit() {
this.data.currentMessage.subscribe(message => this.message1 = message
);
this.data.currentMessage2.subscribe(message => this.message2 = message);
}
第三列定义:
{
headerName: 'RiskBrut',
headerToolName: 'Consultez les échelles',
field: 'RskBrt',
cellRenderer: params => {
return (
this.message1*this.message2
);
}
}
这是我的问题:
1 /如何刷新特定的列(通常来说)?
2 /如何仅刷新下拉列表中所选值已更改的列?
例如:用户更改第一列的值。
我在第一栏中发现他已经这样做了。
我只刷新第一列。
我希望我足够清楚。