Plusieurs grilles d'interface utilisateur Ignite sont configurées sur une page. La grille a une fonction d'exportation Excel mais elle ne fonctionne que pour la grille actuelle. Comment puis-je exporter toutes les grilles d'un même événement? Tout événement de grille à capturer ou à modifier. J'utilise la version 2016 v2Exportation de plusieurs grilles vers un seul Excel dans la grille d'allumage Infragistics
1
A
Répondre
2
Après avoir recherché plusieurs options, j'ai trouvé une solution qui parcourt séquentiellement la collection de mailles et les ajoute au classeur principal.
Pour la méthode exportEnding de la 1ère grille que vous avez choisie, appelez une fonction qui fait l'export (supposé) pour la 2ème grille. Cela peut être séquencé pour autant de grilles que nécessaire. Supposons que chacune de ces fonctions s'appelle ExportGrid, par exemple exportSecondGrid.
de grid1exportEnding :function(sender, args) {
exportSecondGrid(args.workbook);
return false;
}
Utilisez la grille 2 événement de headerExporting pour ajouter la feuille de calcul du classeur principal. Son exportEnding prend la collection d'en-tête généré en-tête à l'exportation manuellement ensemble pour la feuille de calcul
maintenant les événements de la grille 2 comme ci-dessous
var headerArr = [];
$.ig.GridExcelExporter.exportGrid($("#gridSecond"), {
fileName: fileNamePassedAsParameter,
worksheetName: Sheet2NamePassedAsParameter
},
{
headerCellExporting: function(sender, args) {
// We will save all the headers coming to our array for retrieval later on
headerArr.push(args.headerText);
if (args.columnIndex === 0) {
sender._workbook = workbook;
sender._workbook.worksheets().add(sender._worksheet.name());
sender._worksheet = sender._workbook.worksheets(1);
}
},
exportEnding: function(sender, args) {
// Now use the array of headers to be updated
var row = sender._worksheet.rows(0);
for(var ind=0; ind < headerArr.length; ind++) {
row.setCellValue(ind, headerArr[ind]);
}
}
}
);
}