[英]Telerik MVC grid PDF Export not working
我正在测试网格,并且尝试将其导出到PDF和XLS。 使用Excel几乎是直截了当的,但是当我尝试遵循演示中介绍的步骤时,它将无法正常工作。 当我单击导出按钮时,进度条将加载,完成时什么也没有发生,该操作将永远不会执行。
这是我的看法:
@model IEnumerable<ViewModels.TestViewModel>
@{
ViewBag.Title = "Tests KendoUI";
}
<script src="~/Scripts/lib/jszip.min.js" type="text/javascript"></script>
<script src="~/Scripts/lib/pako.min.js" type="text/javascript"></script>
<style>
/*
Use the DejaVu Sans font for display and embedding in the PDF file.
The standard PDF fonts have no support for Unicode characters.
*/
.k-grid {
font-family: "DejaVu Sans", "Arial", sans-serif;
}
/* Hide the Grid header and pager during export */
.k-pdf-export .k-grid-toolbar,
.k-pdf-export .k-pager-wrap,
.k-pdf-export a.k-button.k-button-icontext,
.k-pdf-export .k-filter-row,
.k-pdf-export .k-grouping-header,
.k-pdf-export .k-grid tr td:last-child {
display: none !important;
}
</style>
@(Html.Kendo().Grid(Model)
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Products_Read", "Home"))
.Aggregates(aggregates => aggregates.Add(p => p.oper_monto).Sum())
)
.Columns(columns =>
{
columns.Bound(p => p.oper_numero).Hidden(true);
columns.Bound(p => p.oper_monto).ClientFooterTemplate("Total: #=sum#");
columns.Bound(p => p.cpto_codigo);
})
.Excel(excel => excel
.FileName("Reporte.xlsx")
.Filterable(true)
.AllPages(true)
.ProxyURL(Url.Action("Excel_Export_Save", "Home"))
)
.Pdf(pdf => pdf
.AllPages()
.FileName("Reporte.pdf")
.ProxyURL(Url.Action("Pdf_Export_Save", "Home"))
)
.ColumnMenu()
.ToolBar(t => t.Excel().Text("Exportar a Excel"))
.ToolBar(t => t.Pdf().Text("Exportar a PDF"))
.ToolBar(toolBar =>
toolBar.Custom()
.Text("Guardar Preferencias")
.HtmlAttributes(new { id = "save" })
)
.ToolBar(toolBar =>
toolBar.Custom()
.Text("Cargar Preferencias")
.HtmlAttributes(new { id = "load" })
)
.Filterable(ftb => ftb.Mode(GridFilterMode.Menu))
)
<script>
$(function () {
var grid = $("#grid").data("kendoGrid");
$("#save").click(function (e) {
e.preventDefault();
localStorage["kendo-grid-options"] = kendo.stringify(grid.getOptions());
});
$("#load").click(function (e) {
e.preventDefault();
var options = localStorage["kendo-grid-options"];
if (options) {
grid.setOptions(JSON.parse(options));
}
});
});
</script>
这是我的控制器操作:
[HttpPost]
public ActionResult Pdf_Export_Save(string contentType, string base64, string fileName)
{
var fileContents = Convert.FromBase64String(base64);
return File(fileContents, contentType, fileName);
}
提前致谢。
好了,导出功能使用了一个名为pako的js,您可以在这里找到它,但是如果右键单击并下载文件,它将失败并仍然下载它,但是其中的代码将不是必需的javascript。 因此,我必须输入文件,复制所有文本并将其粘贴到本地文件中。 它就像一个魅力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.