Je possède ce code:Changement dynamique headerName ag-grid Angulaire 2?
public fy: string = "17";
let months = ['July', 'August', 'September', 'October', 'November', 'December', 'January', 'February', 'March', 'April', 'May', 'June',];
function headerCellRendererFunc(year, params) {
const eHeader = document.createElement('span');
eHeader.innerText = `${params.colDef.headerName} ${year}`;
return eHeader;
}
const januaryIndex = months.indexOf('January');
months.map((month, index, arr) => {
const year = januaryIndex === 0 || index > januaryIndex ? this.fy : this.fy + 1;
return <ColDef>{
headerName: month,
headerCellRenderer: headerCellRendererFunc.bind(null, year),
field: `data.${month}`,
editable: isEditable,
valueGetter: cellMonthValueGetter(month, index),
cellFormatter: cellMonthValueFormatter,
newValueHandler: cellMonthNewValueHandler(month),
width: 100,
};
}).forEach((colDef) => colDefs.push(colDef));
et cette fonction:
refresh(): void {
let jobId = +this.route.snapshot.parent.params['id'];
this.jobService.getJob(jobId).then(result => {
this.job = result.Object;
this.fy = result.Object.FinancialYearName;
this.jobService.getTimePhasing(jobId).then(result => {
this.setModel(result.Object);
});
});
}
Comme vous pouvez le voir, le mod FY va changer après la demande. Comment puis-je le changer en colonnes? J'ai encore essayé d'appeler la fonction de rendu de grille, (this.gridOptions.api.refreshView();) mais cela ne m'a pas aidé.
La seule chose qui change l'ordre des colonnes? Je ne comprends pas vraiment la nécessité de changer le headerName –
@JarodMoser Le nom du mois est ajouté une année. Il peut changer, il est fastidieux de le changer dynamiquement dans les en-têtes de colonnes. –