javascript - "Export to excel"按钮kendogrid下载超过1个文件

标签 javascript html kendo-ui

我有一个创建剑道网格的功能,该网格具有将其下载为“.xlsx”文件的按钮。 有一个下拉菜单,当更改时,会再次调用此函数。

function CreateGrid(result) {

    var chartSeries = result.ChartData;
    var gName = $("#dropdown1 option:selected").text();
    // Create Grid
    $("#grid1").kendoGrid({
        toolbar: ["excel"],
        excel: {
            fileName: "Grid1_"+gName+".xlsx",
            filterable: true,
            allPages: true
        },
        columns: [
            { field: "column1", width: "90px", title: "<strong>Item1</strong>" },
            { field: "column2", width: "80px", title: "<strong>Item2</strong>" },
            { field: "column3", width: "120px", title: "<strong>Item3</strong>", format: "{0:c2}" }

        ],
        groupable: false,
        resizable: true,
        pageable: false,
        scrollable: true,
        filterable: false,
        sortable: true,
        pageSize: 50
    });

    // Set Grid data source
    $("#grid1").data("kendoGrid").setDataSource(
        new kendo.data.DataSource({
            //Set the data of the grid as the result array of object.
            data: result.ChartData
        })
    );
}

问题是,当我单击按钮下载文件时,它会下载以前制作的每个网格,而我只需要当前的网格。 例如,我创建了一次网格,然后更改了下拉列表,并且网格更改为与新下拉值相对应的值,但是当我单击按钮时,它会从第一个创建的网格和显示的网格中下载 2 个文件。 如果我再次更改下拉列表,则值将根据下拉列表值更改,但如果我单击下载文件,它将下载前 2 个文件 + 网格中的文件。

似乎即使我再也看不到以前的网格了,它们仍然在那里,所以我想知道如何销毁/删除/清理它们。

最佳答案

我建议您在创建新网格之前删除网格。如果您想重新分配它,此函数将删除它,并且还会返回网格中的当前数据:

function removeGrid(g) {
    var tmp = [];
    try {
        tmp = g.data("kendoGrid").dataSource.data();
    } catch (e) { }
    var container = g.parent();
    g.remove();
    container.append("<div id='" + g.attr("id") + "' class='" + g.attr("class") + "'></div>");
    return tmp;
}

然后你可以这样调用它:

var gName = $("#dropdown1 option:selected").text();
removeGrid($("#grid1"));
// Create Grid
$("#grid1").kendoGrid({
    ...
}

关于javascript - "Export to excel"按钮kendogrid下载超过1个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40218653/

相关文章:

javascript - Kendo UI 日期时间选择器

javascript - NodeJS 显示动态路由上的实时 TCP 数据

javascript - 更改当前选项卡或浏览器窗口的标题

jQuery 隐藏在 .post 成功函数中不起作用

html - 我如何将图片放入左侧单元格?

javascript - Kendo Multiselect 值将逗号替换为逗号 + 空格

javascript - 刷新页面时打开BS Modal并询问用户是否确定

javascript - 假终端浏览器 - 如何让它响应

html - 带三 Angular 形底部边框的层叠 div

javascript - Kendo UI 网格无法与启用 asp.net web api odata 的服务正常工作