2017-06-02 84 views
0

我是Kendo-UI和Web-Engineering的新手,我面临一个问题,在投入数小时后我还没有解决。excel导出后,网格列在Kendo网格中缩小

我有一个8列的网格和一个Excel工具栏按钮。当我触发excelExport事件时,我会显示2个隐藏列以将其数据包含在报告中,之后我再次隐藏它们。

我的问题是,我的列缩小显示时隐藏的列,但当他们再次隐藏时,不要展开宽度。

下面是我对为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> 

我会很感激的任何帮助。 Regards Paparis

+0

尝试在列可见后使用'autoFitColumn'方法! http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-autoFitColumn –

+0

不幸的是,它并没有解决问题 – Paparis

+0

为什么你绑定了事件,而不是将函数放在网格的选项中在'excelExport:'下的对象? – Shai

回答

0

$('#pr-grid table')。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>