我正在使用剑道UI并将网格数据导出到excel,我知道这个过程,它对我来说很好。现在我想excel文件名是一个日期,如"12-12-2014.xlsx",虽然我可以从下拉使用Javascript获得日期值,但我不能发送这个日期值到我的剑道UI网格。这是代码,有谁可以帮助我或者有其他建议吗?
<script type="text/javascript">
var selectedDate ="";
$("#startDate").change(function (e) {
selectedDate = $(this).val();
var sd = selectedDate.split('/');
selectedDate = sd[0] + "-" + sd[1] + "-" + sd[2];
// selectedDate must be the excel file name
});
</script>
剑道UI网格:
@(Html.Kendo().Grid<Futuresteps.Media.Models.PrintMedia>()
.Name("grid")
.Columns(columns =>
{
// some data
})
.Excel(excel => excel
.FileName(selectedDate+".xlsx")
.Filterable(true)
.ProxyURL(Url.Action("Excel_Export_Save", "PrintMedias"))
)
由于日期可以更改,因此您应该在即将将文件导出到Excel时计算日期,而不是在创建时计算日期,如:
.Excel(excel => excel
.FileName(selectedDate+".xlsx")
...
)
你应该定义一个导出到excel的事件处理程序(excelExport
):
excelExport: function(e) {
var selectedDate = ...
e.workbook.fileName = selectedDate + ".xslx";
}
它可能看起来像:
<script type="text/javascript">
var selectedDate ="";
$("#startDate").change(function (e) {
selectedDate = $(this).val();
var sd = selectedDate.split('/');
selectedDate = sd[0] + "-" + sd[1] + "-" + sd[2];
});
var grid = $("#grid").data("kendoGrid");
grid.bind("excelExport", function(e) {
e.workbook.fileName = selectedDate + ".xslx";
});
</script>