【发布时间】:2017-08-09 08:48:23
【问题描述】:
我在一个页面上设置了多个 Ignite UI 网格。网格具有 excel 导出功能,但仅适用于当前网格。如何在单个事件中导出所有网格? 要捕获或修改的任何网格事件。 我正在使用 2016 v2 版本
【问题讨论】:
标签: grid export-to-excel infragistics ignite-ui
我在一个页面上设置了多个 Ignite UI 网格。网格具有 excel 导出功能,但仅适用于当前网格。如何在单个事件中导出所有网格? 要捕获或修改的任何网格事件。 我正在使用 2016 v2 版本
【问题讨论】:
标签: grid export-to-excel infragistics ignite-ui
在研究了多个选项后,找到了一个解决方案,该解决方案对网格集合进行顺序遍历并将每个选项附加到主工作簿。
对于您选择的第一个网格的 exportEnding 方法,调用一个函数来为第二个网格执行导出(假设)。可以根据需要对尽可能多的网格进行排序。假设每个这样的函数都被命名为 ExportGrid,例如 exportSecondGrid。
grid1 的
exportEnding :function(sender, args) {
exportSecondGrid(args.workbook);
return false;
}
使用网格 2 的 headerExporting 事件将当前工作表附加到主工作簿。它的 exportEnding 将在标头导出中生成的标头集合手动为工作表设置
现在网格 2 的事件如下
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]);
}
}
}
);
}
【讨论】: