我从ASP.NET MVC绑定了Kendo Grid,如下所示:
@(Html.Kendo().Grid<My.Web.Models.Generated.CustomerSearch01.CityInfo>()
.Name("gridCities")
.Columns(columns =>
{
columns.Bound(c => c.Text).Width(140).Title("City");
})
.Scrollable()
.Selectable(selectable => selectable.Type(GridSelectionType.Row))
.BindTo(Model.CitiesList)
.DataSource(ds => ds.Server().Model(m => m.Id(p => p.Value)))
)
工作正常,网格显示在带有数据的页面上,我对上面没有任何问题。但是,使用浏览器开发人员工具,如果我尝试使用以下语句获取上述网格的数据,则返回空:
jQuery("#gridCities").data("kendoGrid").dataSource.data()
我错过了什么?
提前致谢
解决方案(根据答案):
替换以下内容:
.DataSource(ds => ds.Server().Model(m => m.Id(p => p.Value)))
带
.DataSource(ds => ds.Ajax().ServerOperation(false).Model(m => m.Id(p => p.Value)))
答案 0 :(得分:3)
您的网格配置为使用ServerBinding,这意味着TR / TD元素是从服务器呈现的。如果您希望在客户端拥有模型的JavaScript对象而不执行单独的Ajax请求,请将DataSource配置为
ds.Ajax().ServerOperations(false)
这不会执行任何Ajax请求,数据将从服务器int JSON序列化。