【发布时间】: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