Экспорт нескольких сеток кендо в PDF - PullRequest
0 голосов
/ 19 мая 2019

Я хочу экспортировать несколько сеток кендо в один файл PDF.У меня есть код, который экспортирует 2 сетки в PDF-файл.но я хочу экспортировать четыре сетки, как я могу добиться этого.Пожалуйста, помогите!

$('#export').on('click', function()
{
    var grid1 = $('#innerGrid').data('kendoGrid');
    var grid2 = $('#developeesGrid').data('kendoGrid');
    var grid3 = $('#innerdeveloperGrid').data('kendoGrid');
    var grid4 = $('#innerVenueGrid').data('kendoGrid');

    var progress = $.Deferred();

    grid1._drawPDF(progress).then(function(firstGrid) 
    {
        grid2._drawPDF(progress).then(function(secondGrid)
        {
            secondGrid.children.forEach(function(x)
            {
                firstGrid.children.push(x);
            });

            return kendo.drawing.exportPDF(firstGrid, { multiPage: true });

        }).done(function(dataURI)
        {
            kendo.saveAs(
            {
                dataURI: dataURI,
                fileName: pdfFilesNames
            });
            progress.resolve();
        });           
    });
});

1 Ответ

0 голосов
/ 19 мая 2019

Вам нужно будет продолжить .then, вложив еще два уровня для дополнительных сеток.* * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * *. Для того, чтобы выполнить экспорт, указывается метод .done для самого глубокого затем.

  <p>Grid 1</p><div id="grid1"></div>
  <p>Grid 2</p><div id="grid2"></div>
  <p>Grid 3</p><div id="grid3"></div>
  <p>Grid 4</p><div id="grid4"></div>
  <p><button id="export">Export</button></p>
  <p id="log"></p>
  <script>
    data1 = [ {a:1,b:2,c:3}, {a:4,b:5,c:6}, {a:4,b:5,c:6} ];
    data2 = [ {x:1,y:2,z:3}, {x:4,y:5,z:6}, {x:4,y:5,z:6} ];
    data3 = [ {p:1,q:2,r:3}, {p:4,q:5,r:6}, {p:4,q:5,r:6} ];
    data4 = [ {f:1,g:2,h:3}, {f:4,g:5,h:6}, {f:4,g:5,h:6} ];

    $("#grid1").kendoGrid({dataSource:data1});
    $("#grid2").kendoGrid({dataSource:data2});
    $("#grid3").kendoGrid({dataSource:data3});
    $("#grid4").kendoGrid({dataSource:data4});

    $("#export").click(function(){

      var g1 = $("#grid1").getKendoGrid();
      var g2 = $("#grid2").getKendoGrid();
      var g3 = $("#grid3").getKendoGrid();
      var g4 = $("#grid4").getKendoGrid();

      var progress = $.Deferred();

      g1._drawPDF(progress).then
      (function(G1) {
        g2._drawPDF(progress).then
        (function(G2) {
          g3._drawPDF(progress).then
          (function(G3) {
            g4._drawPDF(progress).then
            (function(G4) {   
              G2.children.forEach(function(childOf2){G1.children.push(childOf2)});
              G3.children.forEach(function(childOf3){G1.children.push(childOf3)});
              G4.children.forEach(function(childOf4){G1.children.push(childOf4)});

              return kendo.drawing.exportPDF(G1, { multiPage: true });
            })
            .done(function(drawingExport) {
              debugger;
                    kendo.saveAs({
                    dataURI: drawingExport,
                    fileName: "fourgrid.pdf"
                    });
                    progress.resolve();
                })
          })
        })
      })
    });
  </script>
...