У меня есть uigrid, который содержит большое количество определений столбцов, которые изначально не заполнены данными, потому что набор данных будет слишком большим. Вместо этого я получаю запрашиваемые данные столбца при изменении видимости столбца.Углеродный экспорт uigrid выбрал пустые csv
Это вызывает проблему со встроенным экспортером csv. Когда кто-то выбирает «Экспортировать все данные как csv», они получают многочисленные пустые столбцы.
Так что я сделал свою собственную реализацию следующим образом:
$interval(function() {
gridApi.core.addToGridMenu(gridApi.grid, [{
title: 'Export All to CSV',
order: 1,
action: function ($event) {
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport(uiGridExporterConstants.ALL, uiGridExporterConstants.VISIBLE, myElement);
}
}]);
gridApi.core.addToGridMenu(gridApi.grid, [{
title: 'Export Selected to CSV',
order: 2,
action: function ($event) {
if(gridApi.grid.selection.selectedCount > 0){
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport(uiGridExporterConstants.SELECTED, uiGridExporterConstants.VISIBLE, myElement);
}
}
}]);
gridApi.core.addToGridMenu(gridApi.grid, [{
title: 'Export Visible to CSV',
order: 3,
action: function ($event) {
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport(uiGridExporterConstants.VISIBLE, uiGridExporterConstants.VISIBLE, myElement);
}
}]);
}, 0, 1);
Экспорт Все в CSV и экспорта Видна CSV работы, как и ожидалось, но Export Selected просто создает CSV файл только заголовки, без каких-либо данных.
Я знаю, что сетка знает о выборе следующее возвращает элементы, которые выбираются в консоли:
gridApi.core.addToGridMenu(gridApi.grid, [{
title: 'Export Selected to CSV',
order: 2,
action: function ($event) {
if(gridApi.grid.selection.selectedCount > 0){
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport(uiGridExporterConstants.SELECTED, uiGridExporterConstants.VISIBLE, myElement);
console.log(gridApi.selection.getSelectedRows());
gridApi.selection.getSelectedRows().forEach(function (entry) {
console.log(entry);
for (var e in entry){
console.log(entry[e]);
}
});
}
}
}]);
Я полагаю, я мог бы использовать данные, возвращаемые getSelectedRows, чтобы сделать свой собственный CSV, но Я бы не. Является ли uiGridExporterConstants.SELECTED сломанным?