我有一个网格,当用户单击按钮时,它会获取一些参数并刷新数据源:
var grdUP = $("#weblogGrid").data("kendoGrid");
grdUP.dataSource.transport.options.read.url = url; // new url
//Read data source to update
grdUP.dataSource.read();
它工作正常。新数据显示在网格中。网格还有一个按钮,可以将数据导出到excel。我正在使用以下代码(也尝试了内置按钮):
var grid = $("#weblogGrid").data("kendoGrid");
grid.saveAsExcel();
它实际上将数据导出到excel文件。
但是,它始终导出网格中的初始数据,而不是用户刷新的数据。
例如,当网格第一次出现时,它有 10 行数据。刷新后有5行数据。现在,如果导出,尽管网格中的数据不同,它仍然导出10行数据。
这是一个错误吗?或者,也许我在刷新网格中做错了什么?
谢谢
================================
编辑以澄清某事
谢谢。目前,我使用以下方法获得了新数据:
var url = '/WeblogReport/GetWebLogList?fromDate=' + fromDate + '&toDate=' + toDate;
var grdUP = $("#myGrid").data("kendoGrid");
//Set url property of the grid data source
grdUP.dataSource.transport.options.read.url = url;
//Read data source to update
grdUP.dataSource.read();
所以我改为:
// get value of date
....
$.ajax({
type: "GET",
dataType: "json",
url: "/WeblogReport/GetWebLogList",
data: { FromDate: fromDate, ToDate: toDate },
success: function (data) {
alert(data);
var grid = $("#myGrid").data("kendoGrid");
grid.dataSource.data(data);
grid.refresh();
}
});
不知何故,它没有显示新数据。有什么建议?
非常感谢。
添加更多说明
这是在 Json 调用中。
success: function (data) {
var newdata = [{ "UserName": "username", "ClientIP": "1.1.1.1"}];
$("#myGrid").data("kendoGrid").dataSource.data(newdata);
$("#myGrid").data("kendoGrid").refresh();
//$("#myGrid").data("kendoGrid").saveAsExcel();
}
最佳答案
设置以下两个字段以使 Excel 导出工作:
grid.dataSource.transport.options.read.url = url;
grid.options.dataSource.transport.read.url = url;
关于kendo-ui - 剑道用户界面 : Excel Export not working correctly after datasource refreshing data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376823/