У меня есть ugrid, который содержит большое количество определений столбцов, которые изначально не заполнены данными, потому что набор данных будет слишком большим. Вместо этого я получаю запрошенные данные столбца при изменении видимости столбца.
Это вызывает проблему со встроенным экспортером csv. Когда кто-то выбирает «Экспортировать все данные в формате csv», он получает множество пустых столбцов.
Что бы я хотел сделать, это изменить поведение по умолчанию встроенных элементов меню csv для использования uiGridExporterConstants.VISIBLE.
Я собирался перевернуть свои собственные пункты меню так:
$scope.gridOptions.exporterMenuCsv = false; //Rolling our own menu items to exclude invisible columns
$scope.gridOptions.gridMenuCustomItems = [
{
title: 'Export All to CSV',
action: function ($event) {
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport( uiGridExporterConstants.ALL, uiGridExporterConstants.VISIBLE, myElement );
}
},{
title: 'Export Selected to CSV',
action: function ($event) {
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport( uiGridExporterConstants.SELECTED, uiGridExporterConstants.VISIBLE, myElement );
}
},{
title: 'Export Visible to CSV',
action: function ($event) {
var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
$scope.gridApi.exporter.csvExport( uiGridExporterConstants.VISIBLE, uiGridExporterConstants.VISIBLE, myElement );
}
}
];
Но появляется только первый элемент. Возможно, мне нужно использовать addToGridMenu, но я не уверен. В идеале я хотел бы оставить элементы по умолчанию на месте, но просто «экспортировать все данные в формате csv» экспортировать только видимые столбцы.