Kendo ui 自定义剑道网格pdf导出中的数据

Kendo ui 自定义剑道网格pdf导出中的数据,kendo-ui,telerik,kendo-grid,Kendo Ui,Telerik,Kendo Grid,我正在使用剑道网格的内置功能以pdf和excel格式导出网格数据。这对我来说很好。我想自定义导出的数据,即添加一些附加列并删除网格中的一些列。是否有任何方法可以使用模板或其他功能自定义导出数据 提前感谢。您有两个选择: 使用要导出为PDF的列定义第二个网格,当要求导出时,实际导出第二个网格。两个网格应该共享数据源,以便过滤、排序。。。将被共享 截获生成PDF之前触发的pdfExport事件,并使用showColumn和hideColumn方法隐藏/显示列 下面的代码显示了第二种方法(尽管我个人更

我正在使用剑道网格的内置功能以pdf和excel格式导出网格数据。这对我来说很好。我想自定义导出的数据,即添加一些附加列并删除网格中的一些列。是否有任何方法可以使用模板或其他功能自定义导出数据

提前感谢。

您有两个选择:

  • 使用要导出为PDF的列定义第二个网格,当要求导出时,实际导出第二个网格。两个网格应该共享数据源,以便过滤、排序。。。将被共享
  • 截获生成PDF之前触发的
    pdfExport
    事件,并使用
    showColumn
    hideColumn
    方法隐藏/显示列
  • 下面的代码显示了第二种方法(尽管我个人更喜欢第一种)。您将看到,在单击导出按钮之前,您会看到
    EmployeeID
    ,但PDF不包含此列,而是包含
    国家

    $(文档).ready(函数(){
    kendo.pdf.defineFont({
    “DejaVu Sans”:http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans.ttf",
    “DejaVu Sans | Bold”:http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans-Bold.ttf",
    “DejaVu Sans | Bold | Italic”:http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans-Oblique.ttf",
    “DejaVu无斜体”:http://cdn.kendostatic.com/2014.3.1314/styles/fonts/DejaVu/DejaVuSans-Oblique.ttf"
    });
    var grid=$(“#grid”).kendoGrid({
    工具栏:[“pdf”],
    pdf:{
    文件名:“剑道UI网格导出.pdf”,
    代理URL:“http://demos.telerik.com/kendo-ui/service/export"
    },
    数据源:{
    类型:“odata”,
    运输:{
    阅读:{
    url:“http://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees",
    }
    }
    },
    栏目:[
    { 
    标题:“照片”,
    宽度:140,
    模板:“”
    },
    {字段:“名字”},
    {字段:“LastName”},
    {字段:“国家”,隐藏:真},
    {字段:“雇员ID”}
    ],
    可滚动:false,
    pdfExport:函数(e){
    网格显示列(3);
    网格。hideColumn(4);
    }
    }).数据(“kendoGrid”);
    });
    
    
    
    谢谢。在第二个选项中,单击“导出”按钮后,网格中列出的列将发生更改。我不希望这种情况再次发生。对于隐藏/显示列,我使用ColumnMenu,这很好。你能分享你给出的第一个选项的代码片段吗?我无法理解。我的目的是从网格中获取导出数据,其他一些数据源可能与网格源的json文件相同,或者与网格数据有某种关系的其他json文件。你能为你的第一个选项发布一个代码示例吗建议?我更喜欢它,因为它不会改变页面上网格的外观。但是我使用的是MVC扩展,所以不太熟悉JS网格选项的使用。我可以想象,我只想完全用JS创建一个新的网格(我可以通过提供jquery选择器来实现吗?),将数据源复制到新网格,然后调用新网格的saveAsExcel()方法?@Onabai-您可以发布选项1的代码片段吗。非常感谢。选项2的问题在于,除了不希望在导出过程中奇迹般地出现列之外,网格甚至可能没有用于您希望导出的数据的列。