2017-06-02 1 views
0

Je suis nouveau à Kendo-UI et Web-Engineering et je suis confronté à un problème que je n'ai pas résolu après avoir investi des heures de temps.Les colonnes de grille rétrécissent dans la grille de Kendo après exportation excel

J'ai une grille avec 8 colonnes et un bouton de barre d'outils Excel. Lorsque je lance l'événement excelExport, je montre 2 autres colonnes cachées pour inclure leurs données dans le rapport, et après je les cache à nouveau.

Mon problème est que mes colonnes se rétrécissent pour les colonnes cachées lorsqu'elles sont affichées, mais ne développent pas leur largeur par la suite lorsqu'elles sont à nouveau masquées.

Voici mon script pour l'événement excelExport:

<script type="text/javascript"> 
    var exportFlag = false; 

    $(window).load(function() { 
     $("#pr-grid").data("kendoGrid").bind("excelExport",function(e) { 
      if (!exportFlag) { 
       e.sender.showColumn("CallOff"); 
       e.sender.showColumn("LastChange"); 
       e.preventDefault(); 
       exportFlag = true; 
       setTimeout(function() { 
        e.sender.saveAsExcel(); 
       }); 
      } else { 
       e.sender.hideColumn("CallOff"); 
       e.sender.hideColumn("LastChange"); 
       exportFlag = false; 
      } 
     }); 
    }); 
</script> 

Je vous remercie de toute aide. Cordialement Paparis

+0

Essayez d'utiliser la méthode 'autoFitColumn' après que la colonne soit visible! http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-autoFitColumn –

+0

Malheureusement, cela n'a pas résolu le problème. – Paparis

+0

Pourquoi avez-vous lié l'événement et ne pas placer la fonction dans les options de la grille? objet sous 'excelExport:'? – Shai

Répondre

0

$ ('# table de pré-grille'). Width ('100%');

<script type="text/javascript"> 
     var exportFlag = false; 

     function excelExport(e) { 
      if (!exportFlag) { 
       e.sender.showColumn("CallOff"); 
       e.sender.showColumn("LastChange"); 
       e.preventDefault(); 
       exportFlag = true; 
       setTimeout(function() { 
        e.sender.saveAsExcel(); 
       }); 
      } else { 
       e.sender.hideColumn("CallOff"); 
       e.sender.hideColumn("LastChange"); 
       exportFlag = false; 
       $('#grid table').width('100%'); 
      } 
     } 
    </script>