我在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?
答案 0 :(得分:0)
好的,我找到了问题和解决方案。
正如@Iman所说,发送到服务器的数据是编码而不仅仅是JSON, 并且服务器期待JSON。
sort无效,因为就服务器而言,排序表达式无效。
要使网格发送JSON,需要将其配置为执行此操作。问题是服务器包装器不支持此特定功能。唯一的方法是使用javascript在客户端配置它。
我在Telerik的支持论坛上发现this帖子非常有帮助。