我正在使用剑道。当我对网格进行排序时,它不会对下一页数据进行排序。它仅在第一页上排序。我想在网格中对整个数据进行排序。我该怎么做??
$("#ProductGrid").kendoGrid({
columns: [
{ field: "ProductID", title: 'Product Id' ,width:50},
{ field: "ProductName", title: 'Product Name' },
{ field: "Price", title: 'Price' },
],
groupable: true,
sortable: true,
pageable: true,
dataBound: function () {
this.expandRow(this.tbody.find("tr.k-master-row").first());
},
scrollable: true,
filterable: true,
dataSource: new kendo.data.DataSource({
transport: {
read: "../api/Product/FindByPartyIDForGrid?partyID=" + PartyID
},
serverPaging: true,
serverSorting: true,
pageSize: 50,
schema: {
data: "Data",
total: "Count"
}
})
});
我的服务器端方法
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpGet]
[ActionName("FindByPartyIDForGrid")]
public Responce FindByPartyIDForGrid(string partyID)
{
int take = httpRequest["take"] == null ? 10 : int.Parse(httpRequest["take"]);
int skip = httpRequest["skip"] == null ? 0 : int.Parse(httpRequest["skip"]);
var content = new ProductBS().FindByPartyID(Convert.ToInt32(partyID));
if (content != null)
{
return new Models.Responce(content.Skip(skip).Take(take).ToArray(), content.Count());
}
else
{
return new Responce(new Array[0], 0);
}
}
答案 0 :(得分:1)
似乎这不是客户端(kendo)问题。正如我所见,Kendo网格配置正确。在FindByPartyIDForGrid
方法中,您需要进行排序并正确返回相关页面。
检查您的服务器逻辑,如果您可以在此处发布,我们可以查看它。
修改强> 好像你没有处理服务器中的排序,你有两个选择,
1.您可以使用Odata protpcol执行此操作 你可以通过处理sorting yourself,
来做到这一点答案 1 :(得分:0)
发生这种情况是因为您启用了serverSorting。然后你应该自己进行排序。
如果您没有将网格绑定到批量项目,则可以使用客户端排序。只需删除数据源的serverSorting: true
选项。