Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
剑道UI Excel导出,生成多个文件,未正确刷新?_Excel_User Interface_Kendo Ui_Refresh - Fatal编程技术网

剑道UI Excel导出,生成多个文件,未正确刷新?

剑道UI Excel导出,生成多个文件,未正确刷新?,excel,user-interface,kendo-ui,refresh,Excel,User Interface,Kendo Ui,Refresh,我有一个单页应用程序,它经常从数组中创建新数据 var searchData=new kendo.data.DataSource({data:buildData}) 然后将其显示在网格中 这一切看起来都不错,但excel导出的错误行为如下所示: 运行一次搜索,excel导出工作正常 运行第二次搜索,excel导出将下载2个文件,第一个文件是第一次搜索结果的重复,第二个文件是新的搜索结果 运行第三次搜索,excel将导出三个文件。。。。等等 看来刷新对我不起作用,但我不知道为什么不行 if(se

我有一个单页应用程序,它经常从数组中创建新数据

var searchData=new kendo.data.DataSource({data:buildData})

然后将其显示在网格中

这一切看起来都不错,但excel导出的错误行为如下所示:

运行一次搜索,excel导出工作正常

运行第二次搜索,excel导出将下载2个文件,第一个文件是第一次搜索结果的重复,第二个文件是新的搜索结果

运行第三次搜索,excel将导出三个文件。。。。等等

看来刷新对我不起作用,但我不知道为什么不行

if(searchedArray){
searchedArray.forEach(函数(行){
push({r:rowCount,w:row['w'],n:'1',nl:'2',o:row['o'],t:row['t'],d:row['d'];
行计数++;
});
}
var searchData=new kendo.data.DataSource({data:buildData});
var-sGrid=null;
sGrid=$(“#searchedgrid”).kendoGrid({
工具栏:[“excel”],
卓越:{
文件名:“fileName.xlsx”,
代理URL:“http://demos.telerik.com/kendo-ui/service/export",
可过滤:真
},
数据源:searchData,
可排序:{
模式:“多个”,
allowUnsort:对
},
模式:{
型号:{
字段:{
r:{type:“number”},
w:{type:“number”},
n:{type:“string”},
nl:{type:“string”},
o:{type:“string”},
t:{type:“string”},
d:{type:“date”}
}
}
},
身高:sHeight,
可滚动:对,
可分页:false,
可选:“多单元”,
允许复制:是的,
栏目:[
{字段:“r”,宽度:40,标题:“秩”,模板:'#=r},
{字段:“w”,宽度:50,标题:“重量”,模板:'#=w},
{字段:“n”,标题:“编号”,宽度:“80px”,模板:'#=n},
{字段:“nl”,标题:,宽度:“14px”,模板:'',可排序:false},
{字段:“o”,宽度:200,标题:“所有者”},
{字段:“t”,宽度:400,标题:“title”,属性:{style:'空白:nowrap'},
{字段:“d”,宽度:70,标题:“field”,模板:'#=d}
]
}).数据(“kendoGrid”);

$(“#searchedgrid”).data('kendoGrid').refresh();
由于某些原因,在多次初始化网格时,如果没有适当的内务管理,kendoGrid与导出到excel功能将出现错误

我所做的是只创建一次网格:

$("#grid").kendoGrid({
        columns: [
            (FIELDS LIST)
        ],
        groupable: false,
        pageable: true,
        scrollable: true,
        filterable: false,
        sortable: true,
        pageSize: 50
    });
然后,在实际回调事件上重置数据源,就像您已经在做的那样

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

    $("#grid").data("kendoGrid").refresh();

我只是通过清除创建网格的div来解决这个问题

加:

其次是:

$("#grid").kendoGrid({
......
});     

它通过在选择器后添加.html(“”)对我有效:

$("#grid").html('').kendoGrid({
    ...
});

尝试将网格上的数据源最初设置为新的数据源,然后在网格的现有数据源上设置数据。$(“#searchedgrid”).data(“kendoGrid”).dataSource.data(buildData);看看这是否会改变什么。--编辑哦,你不需要每次都重新创建网格,这可能存在于活动之外。很好,是的,在活动之外创建网格解决了问题,谢谢。尽管你的问题很具体,但总有其他人会遇到与你相同的问题。今天,那就是我:)
$("#grid").html('').kendoGrid({
    ...
});