2015-03-30 101 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