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.

序列化