gpt4 book ai didi

ajax - 无法设置 Kendo UI 网格数据源

转载 作者:行者123 更新时间:2023-12-01 22:58:15 26 4
gpt4 key购买 nike

我正在对工作的 Kendo UI 网格进行添加,以允许它根据从文本框传入的 id 进行更新。我正在从 ajax 调用我的 Controller ,一切都按预期工作,直到我尝试创建 kendo.data.DataSource()对于我的网格里面的ajax 成功。 result看起来符合预期,但我为将其分配给数据源所做的任何操作似乎都不起作用。数据什么也没显示,网格变成空的。

网格期望的模型与我的 Controller 中的模型相匹配。我查看了其他问题和 kendo ui 文档,但我似乎无法弄清楚我做错了什么......任何帮助将不胜感激。

Ajax :

$.ajax({
type: "POST",
url: '@Url.Action("Search")',
data: JSON.stringify({ id: id }),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
var grid = $("#Grid").data("kendoGrid");
var data = new kendo.data.DataSource(result);
grid.dataSource.data(data);
grid.refresh();
}
});

Controller :
public ActionResult Search([DataSourceRequest]DataSourceRequest request, string id)
{
IEnumerable<SearchModel> data = GetData(id);

return Json(data.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}

最佳答案

您在服务器上使用 ToDataSourceResult() 扩展方法,因此您需要使用结果的 Data 属性分配给您在客户端上创建的 DataSource 对象的 data 属性。此外,您应该使用网格的 setDataSource 方法而不是 grid.dataSource.data()。最后,您要调用 dataSource 网格属性的 read() 方法,而不是 grid.Refresh()。

$.ajax({
type: "POST",
url: '@Url.Action("Search")',
data: JSON.stringify({ id: id }),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
var grid = $("#Grid").data("kendoGrid");
var dataSource = new kendo.data.DataSource({
data: result.Data
});
grid.setDataSource(dataSource);
grid.dataSource.read();
}
});

关于ajax - 无法设置 Kendo UI 网格数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com