0

我用的是剑道。当我对网格进行排序时,它不会对下一页数据进行排序。它只在第一页排序。我想对网格中的整个数据进行排序。我该怎么做??

$("#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);
      }   
}
4

2 回答 2

1

似乎这不是客户端(剑道)问题。如我所见,剑道网格配置正确。在您的FindByPartyIDForGrid方法中,您需要进行排序并正确返回相关页面。

检查您的服务器逻辑,如果您可以在此处发布它,我们可以查看它。

编辑 好像你还没有处理服务器中的排序,你有两个选择,

1.您可以使用Odata protpcol
2.您可以通过自己处理排序来做到这一点,

于 2013-10-01T05:22:27.023 回答
0

这是因为您启用了 serverSorting。然后你应该自己进行排序。

如果您不将网格绑定到批次项目,则可以使用客户端排序。只需删除serverSorting: true数据源的选项。

于 2013-10-02T10:56:11.310 回答