aw0*_*w04 2 ajax asp.net-mvc kendo-ui
我正在添加一个工作的Kendo UI网格,允许它根据从文本框传入的id进行更新.我从ajax调用我的控制器,一切都按预期工作,直到我尝试kendo.data.DataSource()在ajax成功中创建for my grid.该result预期我把它分配给数据源的外貌,但任何事情似乎并没有工作.数据没有显示任何内容,并且网格显示为空.
网格预期的模型与我的控制器中的模型匹配.我看过其他问题和剑道ui文档,但我似乎无法弄清楚我做错了什么...任何帮助将不胜感激.
阿贾克斯:
$.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();
}
});
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Search([DataSourceRequest]DataSourceRequest request, string id)
{
IEnumerable<SearchModel> data = GetData(id);
return Json(data.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
Sea*_*ase 10
您正在服务器上使用ToDataSourceResult()扩展方法,因此您需要使用result的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();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6634 次 |
| 最近记录: |