0

我在 GitHub 上从他们的公共示例中下载了 Telerik grid-crud示例

我将它从客户端javascript初始化转换为服务器端包装器(下载试用版)

这是代码(这里是手动输入的,开发机器没有连接到inet)

@(Html.Kendo.Grid<SampleViewModel>()
    .Name("SamplGrid")
    .Columns( c=>
    {
        c.Bound(s => s.id);
        c.Bound(s => s.Name);
    })
    .Pageable()
    .Sortable()
    .DataSource( ds => ds
     .Ajax()
     .PageSize(10)
     .Read( r => r.Action("Read", "Samples").Type(HttpVerbs.Post))
     )
)

问题是排序不起作用。

在我的版本中发送到服务器的排序表达式如下所示: take=10&skip=0&page=1&pagesize=10&sort%5B0%5D%5Bfield%5d=id%5Bdir%5d=asc

在原始示例中,它看起来像:

{"take":10,"skip":0,"page":1,"pagesize":10,"sort":[{"field":"id","dir":"asc","compare":null}]}

换句话说,示例发送 JSON,但我的代码会生成其他内容。

如何让网格使用服务器包装器发送相同的 JSON?

4

1 回答 1

0

好的,我找到了问题和解决方案。

正如@Iman 所说,发送到服务器的数据是编码的,而不仅仅是 JSON,服务器期待的是 JSON。

排序不起作用,因为排序表达式就服务器而言是无效的。

要使网格发送 JSON,需要对其进行配置。问题是服务器包装器不支持此特定功能。这样做的唯一方法是使用 javascript 在客户端进行配置。

我发现Telerik 支持论坛中的这篇文章很有帮助。

于 2013-10-14T11:28:06.857 回答