如何将 Javascript 变量值发送到 Kendo UI 网格?

How to send Javascript variable value to Kendo UI Grid?

我正在使用 Kendo UI 并将网格数据导出到 excel,我知道这个过程并且对我来说效果很好。 现在我希望 excel 文件名是一个像 "12-12-2014.xlsx" 这样的日期,尽管我可以使用 Javascript 从下拉列表中获取日期值,但我无法发送这个日期值到我的 Kendo 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>

Kendo 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>