事件触发"将所有数据导出为csv"。?

时间:2018-03-23 10:12:29

标签: javascript angularjs angular-ui-grid

我在stackoverflow中尝试了与问题相关的答案。它没有成功。

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

因为,我的数据很大。在加载时,我只显示25个数据。当页面更改查询将被传递并且它从db返回接下来的25个值。

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

enter image description here

分页示例代码:

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时触发事件。 ??

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

部分找到答案。

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

当我点击"将所有数据导出为csv"时,该函数被调用2次。

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

任何人都可以解释?

答案 1 :(得分:0)

一旦您掌握了所有内容,就将外部排序/分页更改为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

中的更多信息