У меня есть сетка mvc kendo, и я пытаюсь экспортировать данные в excel.Kendo 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#&periodId=#=periodId#&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.
[HttpPost]
public ActionResult Excel_Export_Save(string contentType, string base64, string fileName)
{
var fileContents = Convert.FromBase64String(base64);
return File(fileContents, contentType, fileName);
}
Но это действие контроллера даже не вызывается при нажатии кнопки импорта Excel в сетке.
Что я делаю неправильно? Любое предложение приветствуется. Спасибо.
После определения этой
.ToolBar(tools => tools.Excel())
.Excel(excel => excel
.AllPages(true)
.ProxyURL(Url.Action("Excel_Export_Save", "Task"))
);
и создания соответствующих методов действий, я должен делать что-нибудь еще?
Я пробовал много примеров, но кнопка (Экспорт в Excel) ничего не делает. Я импортировал файл 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
Любой вид помощи ценится. Я застрял здесь.