Kendo UI 从服务器端绑定时,客户端的网格数据始终为空
Kendo UI Grid data is always empty at client-side, when binding it from server side
我正在绑定来自 ASP.NET MVC 的 Kendo 网格,如下所示:
@(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)))
)
效果很好,网格显示在包含数据的页面上,我没有遇到上述问题。但是,使用浏览器开发工具,如果我尝试使用以下语句获取上述网格的数据,它 returns 为空:
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)))
您将网格配置为使用 ServerBinding,这意味着 TR / TD 元素是从服务器呈现的。如果您想在客户端拥有模型的 JavaScript 对象并且不执行单独的 Ajax 请求,请将您的数据源配置为
ds.Ajax().ServerOperations(false)
这不会执行任何 Ajax 请求,数据将从服务器 int JSON.
序列化
我正在绑定来自 ASP.NET MVC 的 Kendo 网格,如下所示:
@(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)))
)
效果很好,网格显示在包含数据的页面上,我没有遇到上述问题。但是,使用浏览器开发工具,如果我尝试使用以下语句获取上述网格的数据,它 returns 为空:
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)))
您将网格配置为使用 ServerBinding,这意味着 TR / TD 元素是从服务器呈现的。如果您想在客户端拥有模型的 JavaScript 对象并且不执行单独的 Ajax 请求,请将您的数据源配置为
ds.Ajax().ServerOperations(false)
这不会执行任何 Ajax 请求,数据将从服务器 int JSON.
序列化