"Export all data as csv" 上的事件触发?

Event trigger on "Export all data as csv".?

我试过Whosebug中与问题相关的答案。没有成功。

我正在尝试在 UI-GRID 中进行服务器端分页。刚刚点击将所有数据导出为 csv。

因为,我的数据很大。加载时,我只显示 25 个数据。当页面更改查询将被传递时,它 returns 来自 db 的下一个 25 个值。

是否有任何事件会触发将所有数据导出为 csv?所以,我可以点击控制器并检索实际存在的值。

分页示例代码:

gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) {
    paginationOptions.pageNumber = newPage;
    paginationOptions.pageSize = pageSize;

      CommonService.getStudents("../login/loadValues",
                paginationOptions)
            .then(function(data) {
                $scope.ListOption.data = data;
                $scope.ListOption.totalItems = data[0].count;
            });
        });

同样,我需要在将所有数据导出为 CSV 时触发事件。 ??

如有任何建议,我们将不胜感激。

部分找到答案。

$scope.ListOption.exporterAllDataFn=function(){
//service call
 CommonService.getStudents("../login/loadValues",
                paginationOptions)
            .then(function(data) {
                $scope.ListOption.data = data;
                $scope.ListOption.totalItems = data[0].count;
            });
} 

当我点击 "export all data as csv" 时,函数被调用了 2 次。

注意:这只发生在第一次页面加载时。第二次点击时,函数被调用一次。

谁能解释一下?

一旦你得到一切,将外部sorting/pagination更改为false

exporterAllDataFn: () => {

                filter.pageSize = this.gridOptions.totalItems;
                filter.pageNumber = 1;

                return getStuff()
                          .then((allData: any) => {
                              this.gridApi.grid.options.useExternalPagination = false;
                              this.gridApi.grid.options.useExternalSorting = false;
                              this.gridOptions.data = allData.items;
                              this.gridOptions.totalItems = allData.totalNumber;
                              return allData.items;
                          });
},
this.gridApi.core.on.sortChanged(this.$scope, (grid, sortColumns) => {
                if (this.gridApi.grid.options.useExternalSorting) {
                    this.sortDirection = sortColumns[0] ? sortColumns[0].sort.direction === "asc" ? 0 : 1 : 0;
                    this.sortColumn = sortColumns[0] ? sortColumns[0].colDef.databaseField : null;
                    getStuff()
                }
});

this.gridApi.pagination.on.paginationChanged(this.$scope, (newPage, pageSize) => {
            if (this.gridApi.grid.options.useExternalPagination) {
                this.paginationOptions.pageNumber = newPage;
                this.paginationOptions.pageSize  = pageSize;
                getStuff()
            }

});

更多信息见http://ui-grid.info/docs/#!/tutorial/Tutorial:%20405%20Exporting%20All%20Data%20With%20External%20Pagination