如何打印 Angular UI-Grid 整个数据?

2023-12-02

这是我的代码

<!DOCTYPE html>
<html class="no-js" ng-app="test"><!--<![endif]-->
<head>
    <meta charset="utf-8">
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
    <title></title>
    <meta content="width=device-width" name="viewport">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/angular-ui/bower-ui-grid/master/ui-grid.min.css">
    <link rel="stylesheet" href="http://ui-grid.info/release/ui-grid.css" type="text/css">
    <link rel="stylesheet" href="main.css" type="text/css">
   

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular-touch.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular-animate.js"></script>
    
    <script src="http://ui-grid.info/docs/grunt-scripts/csv.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/pdfmake.js"></script>
    <script src="http://ui-grid.info/docs/grunt-scripts/vfs_fonts.js"></script>
    <script src="https://cdn.rawgit.com/angular-ui/bower-ui-grid/master/ui-grid.js"></script>
    <style>
        body {
            padding: 60px;
            min-height: 600px;
        }
        .grid {
            width: 900px;
            height: 400px;
        }
        .placeholder {
            height: 50%;
            width: 50%;
            border: 3px solid black;
            background: #ccc;
        }
    </style>
</head>
<body ng-controller="Main">
    
<h2>Grid</h2>
    <button ng-click="export()">Export to Csv</button>
    <button ng-click="exportPdf()">Export to Pdf</button>

    <div class="custom-csv-link-location">
        <br />
        
        <span class="ui-grid-exporter-csv-link">&nbsp</span>
    </div>
    <br />
    <div>
        <div ui-grid="gridOptions" ui-grid-pagination ui-grid-resize-columns ui-grid-selection ui-grid-exporter ui-grid-move-columns class="grid"></div>
    </div>
    <button  ng-click="print()">Print</button>
<!-- <div class="placeholder"> -->
<!-- </div> -->

<br>
<br>

<script>
    var app = angular.module('test', ['ngAnimate', 'ngTouch', 'ui.grid', 'ui.grid.pagination', 'ui.grid.selection', 'ui.grid.exporter', 'ui.grid.moveColumns']);
    app.controller('Main', function ($scope, $http, $filter, uiGridConstants) {
        $scope.filteredData = [];
        $scope.gridOptions = {};
        

        $scope.gridOptions = {
            paginationPageSizes: [10, 15, 20],
            paginationPageSize: 10,
           
            columnDefs: [
            { name: 'id', enableColumnMenu: false },
            { name: 'name',  pinnedLeft: true, enableColumnMenu: false },
            { name: 'age',  pinnedRight: true, enableColumnMenu: false },
            { name: 'company',  enableColumnMenu: false },
            { name: 'email',  enableColumnMenu: false },
            { name: 'phone', enableColumnMenu: false },
            //{ name: 'about', width: 200, enableColumnMenu: false }
            ],
            exporterPdfDefaultStyle: { fontSize: 9 },
            exporterPdfTableStyle: { margin: [10, 10, 10] },
            exporterPdfTableHeaderStyle: { fontSize: 10, bold: true, italics: true, color: 'red' },
            exporterPdfOrientation: 'portrait',
            exporterPdfPageSize: 'A3',
            //exporterPdfMaxGridWidth: 1000,
            onRegisterApi: function (gridApi) {
                $scope.gridApi = gridApi;
            }
        };
    
       

            $http.get('https://rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
                    .success(function (data) {
                        $scope.gridOptions.data = data;
                       
                    });
            $scope.export = function () {
                var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
                $scope.gridApi.exporter.csvExport('all', 'all', myElement);

            };
            $scope.exportPdf = function () {
                var myElement = angular.element(document.querySelectorAll(".custom-csv-link-location"));
                $scope.gridApi.exporter.pdfExport('all', 'all', myElement);

            };
    });
</script>
</body>
</html>
        
In the above code i have 500 rows data to display with paging , but when user click print button printing total grid data by using angularjs. so please could somebody help me to resolve this,because i am new to this technology

Hint 1:

如果您参考如何使用 ui-grid 进行打印,ui-grid 网站会在以下位置显示帮助:导出数据,您可以在其中从网格菜单导出数据。

Hint 2

如果您想在自定义菜单项中管理导出到 Pdf,则必须定义如下内容:

$scope.gridOptions = {
    gridMenuCustomItems = [ 
       {
            title: 'Exporting as PDF',
            action: function ($event) {

                var exportColumnHeaders = uiGridExporterService.getColumnHeaders(this.grid, uiGridExporterConstants.ALL);
                var exportData = uiGridExporterService.getData(this.grid, uiGridExporterConstants.ALL, uiGridExporterConstants.ALL, true);
                var docDefinition = uiGridExporterService.prepareAsPdf(this.grid, exportColumnHeaders, exportData);

                if (uiGridExporterService.isIE() || navigator.appVersion.indexOf("Edge") !== -1) {
                  uiGridExporterService.downloadPDF(this.grid.options.exporterPdfFilename, docDefinition);
                } else {
                  pdfMake.createPdf(docDefinition).download();
                } 
            },
            order: 2
        }
}

注意:您必须在角度控制器中包含对此的引用:uiGridExporterService、uiGridExporterConstants

Hint 3

如果打印超过 500 行时遇到任何问题,则 ui-grid 组件使用的 pdfmake.js 库中存在错误。为此,您有一个解决方法在 github 上。您在这里有额外的信息github问题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何打印 Angular UI-Grid 整个数据? 的相关文章

随机推荐

  • 使用 jQuery 同步滚动?

    我正在尝试实现两个同步滚动DIV使用以下代码 DEMO document ready function div1 scroll function div2 scrollTop div1 scrollTop div2 scroll funct
  • 绝对与相对位置宽度和高度

    我知道什么是绝对位置和相对位置 但有些点我仍然不清楚 以供参考 css rel position relative background red abs position absolute background blue html div
  • 将列表拆分为较小的相等值列表

    我希望将一个列表转换为较小的等值列表 我有一个例子是 a a a b b c c c c to a a a b b c c c c 您认为做到这一点最有效的方法是什么 你可以使用itertools groupby解决问题 gt gt gt
  • 使用 SQL 查找缺失的日期

    我在表中有一些超过两年的日期作为示例日期 01 jan 2012 02 jan 2012 04 jan 2012 05 jan 2012 06 jan 2012 07 jan 2012 09 jan 2012 11 jan 2012 01
  • JavaScript 中如何检查字符串数组是否包含一个字符串? [复制]

    这个问题在这里已经有答案了 我有一个字符串数组和一个字符串 我想根据数组值测试这个字符串 并对结果应用一个条件 如果数组包含字符串 则执行 A 否则执行 B 我怎样才能做到这一点 有一个indexOf所有数组 Internet Explor
  • Git 命令可以在终端中运行,但不能在 groovy 脚本中运行

    以下 git 命令适用于 Android Studio 终端 git no pager show s format an
  • 有什么方法可以使递归函数更快吗?

    经过对递归函数的一些研究后 我面临着矛盾 一方面以递归方式解决问题很优雅 但另一方面在实践中性能似乎很糟糕并且递归调用的数量是有限的 我知道默认情况下 Python 的递归深度限制为 1000 但是即使在一个简单的应用程序中 早在 40 5
  • 在一个进程多个数据库连接 sinatra 应用程序中使用什么 ORM?

    检查了 ActiveRecord DataMapper Sequel 有些使用全局变量 静态变量 有些需要在加载模型源文件之前打开数据库连接 在使用不同数据库的 sinatra 应用程序中使用什么 ORM 更好 DataMapper 专为多
  • 从 Invoke-Command 执行嵌套 ScriptBlock 时出现错误

    我正在寻找创建包装器的方法Invoke Command在调用我的命令之前 它会恢复我在远程计算机上使用的当前目录 这是我尝试做的 function nice invoke param string Computer scriptblock
  • 在路径 DexPathList 上找不到类

    我试图将我的项目更新到 targetSdk 23 但考虑到所有的弃用 我决定不准备这样做 我不想经历它 所以我在 Mercurial 上恢复到旧版本 现在我得到的只是这个错误 而且我无法让该死的应用程序再次运行 可能出了什么问题 12 21
  • 使用 DryIoc 解决多个注册之一

    鉴于下面的小例子 有没有一种方法可以标记 属性 名称约定 MyInterface论证中MyService2 这样它将正确解析 或者是传入的唯一方法MyInterface 我知道Castle Windsor可以根据命名约定来解析它 但我在Dr
  • Shiny:是否有办法仅在单击 Shiny 地图后才启用鼠标滚轮缩放?

    有没有办法仅在第一次单击地图后启用鼠标滚轮缩放 我有以下代码 其中我只想在单击地图后缩放地图 有没有办法在闪亮的情况下做到这一点 library shiny library leaflet library maps ui lt fluidP
  • html 页面中的文本突出显示

    我正在使用 jquery 处理 HTML 我想制作一个网页来一次突出显示该页面中的一些文本行 第 15 22 32 行 这可以通过单击鼠标左键并拖动该行来完成 以便选择具有蓝色背景的文本行 我可以使用 jquery 获取选定的行 如下所示
  • 使用估算数据集时 svydesign 出现错误

    我正在使用 svydesign 分析估算数据集 但出现错误 下面是代码 library mitools library survey data nhanes nhanes hyp lt as factor nhanes hyp imp lt
  • 从字典写入 numpy 数组

    我有一个文件头值 时间 帧数 年 月等 的字典 我想将其写入 numpy 数组 我目前的代码如下 arr np array k v for k v in fileheader iteritems dtype a3 a i4 i4 i4 i4
  • 自动播放嵌入 YouTube 视频

    我正在尝试将 Youtube 视频嵌入到我的网站中 该视频在页面加载后会自动播放 我目前正在使用 但是 在单击之前视频不会播放 这段代码有什么问题 网站链接 牛津大学 将其添加到 URL 字符串中 自动播放 1 静音 1 这会将属性自动播放
  • C++ 读取 WAV 文件的数据部分

    我计划创建一个程序来可视化 wav 文件的音频波形 到目前为止 我已经开始正确读取所述 wav 文件的标头部分 我使用的代码是这样的 include
  • 保存带有核心数据的数组 Swift 3?

    I m trying to save an array within Core Data as a property allImages is going to be assigned to a String I ve seen some
  • Rails 不会预编译 .js.erb

    为什么 Rails 不会预编译 js erb asset My config application rb require File expand path boot FILE require rails all Bundler requi
  • 如何打印 Angular UI-Grid 整个数据?

    这是我的代码