Kendo MVC – 导出到Excel

我有一个剑道mvc网格,我正试图导出数据到excel。

这是我的.chhtml。

<div class="panel-body table-responsive"> @{ var gridBuilder = CodeTaskKendoGrid.CreateTaskGrid(Model.TaskOverviewList, Model.ViewableExtraFields, this.Html, Model.Configuration); gridBuilder.ToolBar(tools => tools.Excel()) .Excel(excel => excel .AllPages(true) .ProxyURL(Url.Action("Excel_Export_Save", "Task")) ); } @gridBuilder.ClientDetailTemplateId("client-template") </div> <script id="client-template" type="text/x-kendo-template"> # if (SubTasks != null && SubTasks.length > 0) { # <text> <table class="adra-kendo-table"> # var j = SubTasks.length; # # for(var i = 0; i < j; i++) { # # var ownerName= SubTasks[i].OwnerName; # # var taskStatusId= SubTasks[i].TaskStatusId; # # var taskId = SubTasks[i].Id; # # var periodId = SubTasks[i].PeriodId; # # var teamId = SubTasks[i].TeamId; # <tr> <td>#: SubTasks[i].Id #</td> <td>#: SubTasks[i].Name #</td> <td class="# @CodeTaskKendoGrid.OwnerClass("ownerName") #"># @CodeTaskKendoGrid.OwnerName("ownerName") #</td> <td>#: SubTasks[i].TaskStatus #</td> <td>#: SubTasks[i].ApprovalStatus #</td> <td><a class="btn btn-warning btn-xs" href="/Task/EditTask?taskId=#=taskId#&amp;periodId=#=periodId#&amp;teamId=#=teamId#" type="button">Edit</a></td> </tr> # } # </table> </text> # } # 

这是我生成网格的地方(这是另外一个.cshtml文件,我用它来生成网格,我从上面的文件中调用这个文件中的方法)

 public static GridBuilder<DtoTaskExtended> CreateTaskGrid(IEnumerable<DtoTaskExtended> taskList, IEnumerable<DtoExtraField> viewableExtraFields , System.Web.Mvc.HtmlHelper htmlHelper, TaskGridConfig gridConfig) { ExtraFieldConfigs = viewableExtraFields; Helper = htmlHelper; GridConfig = gridConfig; var retObj = Helper.Kendo().Grid(taskList) .Name("AdraKendoGrid") .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("GetTaskResult", "Task")) ) .Columns(ColumnsConfigurator) .Groupable(gr => gr.Messages(message => message.Empty(Strings.kendoGroupMsg))) .Pageable(pager => pager.PageSizes(new int[] { 15, 50, 100, 500 }) .Info(true) .Messages(message => message.Display("{0} - {1} " + Strings.of + "{2} " + Strings.items)) .Messages(message => message.ItemsPerPage(Strings.itemsPerPage)) .Messages(message => message.Empty(Strings.noItemsToDisplay))) .Resizable(r => r.Columns(true)) .Sortable() .Reorderable(reorder => reorder.Columns(true)) .Resizable(r => r.Columns(true)) .ColumnMenu(); return retObj; } 

最后,这是我的控制器操作应该从Excel导入button调用。

 [HttpPost] public ActionResult Excel_Export_Save(string contentType, string base64, string fileName) { var fileContents = Convert.FromBase64String(base64); return File(fileContents, contentType, fileName); } 

但是,单击网格中的Excel导入button时,该控制器操作甚至不会被调用。

我究竟做错了什么? 任何build议表示赞赏。 谢谢。

指定了这个之后

 .ToolBar(tools => tools.Excel()) .Excel(excel => excel .AllPages(true) .ProxyURL(Url.Action("Excel_Export_Save", "Task")) ); 

并制定相关的行动方法,我应该做更多的事情?

我已经尝试了很多的例子,但我的button(导出到Excel)button不做任何事情。 我已经导入了jsZip.js文件(在Kendo Demo中指定)。 我正在关注下面的例子。

http://demos.telerik.com/aspnet-mvc/grid/excel-export

http://docs.telerik.com/kendo-ui/aspnet-mvc/helpers/grid/excel-export

任何forms的帮助表示赞赏。 我被困在这里。

一个解决scheme是:

 <script src="//cdnjs.cloudflare.com/ajax/libs/jszip/2.4.0/jszip.min.js"></script> 

问题是我用的Kendo MVC版本。 Kendo 2014 Q3(2014.3.1119)版本支持Excel导出。

Interesting Posts