asp.net mvC语言 如何将Javascript变量值发送到剑道UI网格



我正在使用剑道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>

最新更新