2015-03-30 70 views
2

因此,我试图寻找一种方法来修改导出为ex​​cel的值,就像使用ClientTemplate()修改Kendo Grid中的值一样。目前,我导出到Excel的方式就是通过这种方法:如何在将Kendo网格导出到Excel时修改值?

.Excel(excel => excel 
     .FileName("InvitedList.xlsx") 
     .AllPages(true) 
     .Filterable(true) 

我使用.ClientTemplate()方式如下:

@(Html.Kendo().Grid<(TableLocation)>() 
     .Name("List of Invited") 
     .Columns(col => { 
      ...Some Columns... 
      columns.Bound(p => p.RSVP).Title("Is Attending?").Width(75).ClientTemplate("#if(RSVP == 0){#No#}else{#Yes#}#"); 
      ...More Columns... 
     }) 
     .ToolBar(toolbar => { 
      toolbar.Excel(); 
     }) 
     ... 
     .Excel(excel => excel 
      .FileName("InvitedList.xlsx") 
      .AllPages(true) 
      .Filterable(true) 
     ) 
     ... 
     .DataSource(dataSource => dataSource 
      .Ajax() 
      ... 
     ) 
) 

我没有在StackOverflow的在这里找到一种方式,和Telerik的文档似乎只有脚本解决方案,而我正在寻找一种方法来执行从cshtml页面上的@转义。

谢谢你的任何建议!

编辑:添加了一些更多细节,希望能够清除一些疑惑。

+0

您使用哪种数据绑定? – 2015-03-30 21:29:02

+0

@mmillican相信我正在使用'gridBinding'。 – 2015-03-31 14:43:59

+0

您是否使用'.Server()'或'.Ajax()'绑定数据源? – 2015-03-31 14:58:23

回答

0

如果你看看他们的例子(http://demos.telerik.com/aspnet-mvc/grid/excel-export),它看起来像ClientTemplate()格式将被导出到Excel。

虽然有一点需要注意,您使用@转义引用 - 这在ClientTemplates中不起作用。您必须使用它们的语法,例如:

.ClientTemplate("#=myValue#") 
+0

'.ClientTemplate()'当我在网站上工作,(显示'参加'或'不参加'而不是1或0),但是当我输出到Excel中,0或1显示在列上。你可以更具体的不使用'@'转义?我目前使用它来创建整个网格,而不仅仅是'.ClientTemplate()'方法。 – 2015-03-31 15:39:47

+0

你可以编辑你的问题,并包括你的整个网格定义? – 2015-03-31 15:40:51

+0

我不认为我有权限添加整个定义,但我会编辑它以包含更多详细信息。 – 2015-03-31 16:05:12

相关问题