我想通过ajax检索数据来填充kendo网格。这里是AJAX:Kendo Grid:填充来自ajax的数据
var model = @Html.Raw(Json.Serialize(Model));
$(document).ready(function() {
$.ajax({
url: "/Utilities/Report/Run",
data: JSON.stringify(model),
contentType: "application/json",
type: "POST",
success: function(result) {
var ds = new kendo.data.DataSource({
data: result
});
alert(result);
$("#grid").data("kendoGrid").setDataSource(ds);
},
error: function(result) {
options.error(result);
}
});
$("#grid").kendoGrid({
toolbar: ["excel", "pdf"],
excel: {
fileName: "test"
},
pdf: {
fileName: "test"
},
});
});
在alert(result)
这数据是什么样子:
[
{"TEST":"one"},
{"TEST":"two"},
{"TEST":"three"}
]
AJAX调用看起来就工作和数据对我来说很好,但剑道网格没有更新,它仍然是空白的。我也没有得到任何错误。我已经尝试将kendoGrid放入ajax成功函数中,获得相同的结果。我已经尝试在数据源中使用transport
和read
来检索数据,但不断给我一个错误:n.slice is not a function
。但是,其他人似乎认为这是因为没有定义模式。由于我正在检索的数据的种类,我无法定义这一点。从服务器检索到的数据可以具有任何列/字段名称和任意数量的列。不过,这并不复杂。
如何让我的网格填充此数据?
老弟,我已经有这样的问题,但我不能复制不记得那解决方案。但是我记得的是关于传递给dataSource的对象的东西,在你的case结果对象中。确保它是一个JavaScript对象,而不是字符串或类似的东西(甚至注意到你已经添加了'contentType:“application/json”')。也许,如果你尝试使用它作为'{data:result}'并定义你的'schema.data:“data”'只是为了帮助剑道了解你的数据。这个问题很糟糕,它永远都会发生,我很害怕他们永远不会修复它。 – DontVoteMeDown