【问题标题】:Kendo datagrid not sending sort field parameter to server (Controller in MVC)剑道数据网格未将排序字段参数发送到服务器(MVC 中的控制器)
【发布时间】:2014-02-12 05:47:39
【问题描述】:

我有一个剑道数据网格。分页功能完美运行。但是,当单击列标题对数据进行排序时,控件会一直发送空白排序字段参数。

有趣的是,控件仍然发送排序方向,只是不发送字段名称。

我已经将 sortable 设置为 true,DataSource,将 serverPaging 设置为 true,并为每一列定义了数据类型。我还有什么遗漏的吗?

索引.cshtml:

    <div class="k-rtl">

    @(Html.Kendo().Grid<KendoSample.Models.Person>()
   .Name("grid")
   .Columns(columns =>
    {
        columns.Bound(p => p.PersonId).Title("Person Code").Width(100).Sortable(true);
        columns.Bound(p => p.Name).Title("Person Name").Width(200).Sortable(true);
        columns.Bound(p => p.Family).Title("Person Family").Sortable(true);
    })
.Pageable()
.ToolBar(s => { s.Create(); })
.Scrollable()
.Sortable()
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
    .Ajax()
                            .Sort(sort =>
                            {
                                sort.Add(p => p.Name);
                                sort.Add(x => x.Family);
                            })
                            .Model(c => c.Id(p => p.PersonId))
                            .Create(c => c.Action("Read", "Home"))
                            .ServerOperation(true)
    .PageSize(8)
    .Read(read => read.Action("EditingPopup_read", "Home"))
 ).Sortable(c => c.AllowUnsort(false).SortMode(GridSortMode.SingleColumn))
 .Resizable(resize => resize.Columns(true))
 )

</div>

控制器:

        public ActionResult EditingPopup_read ([DataSourceRequest]DataSourceRequest request)
    {
        return Json(GetCustomers().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);

    }

萤火虫中的参数:

page    1
pageSize    8
skip    0
sort[0][dir]    asc
sort[0][field]  Name
take    8

但在 Controller 中,sorts 为空。 请帮帮我。

【问题讨论】:

  • 在我看来,您的第二次 Sortable() 方法调用毫无意义。我还将从DataSource 配置中删除Sort() 方法。我有一种感觉,它把事情搞砸了。如我所见,由于您告诉网格在读取时始终对数据源进行排序,因此无需将搜索条件发送到控制器。在发回数据之前,我总是在控制器中进行排序。

标签: c# asp.net-mvc-4 sorting kendo-grid kendo-asp.net-mvc


【解决方案1】:

谢谢。 我通过包含 kendo.aspnetmvc.min.js 解决了这个问题。 see link

【讨论】:

    【解决方案2】:

    您的排序应该在 Sortable() 中,不是吗?请查看他们的官方演示。

    http://demos.kendoui.com/web/grid/sorting.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 2016-12-22
      • 1970-01-01
      相关资源
      最近更新 更多