我在网格中返回以下信息,但它不会按照名字和姓氏命令记录第一个订单。请让我知道如何实现这一目标。我目前正在使用MVC4和kendoui网格
public ActionResult Index()
{
return View();
}
public ActionResult GetSession([DataSourceRequest] DataSourceRequest request)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
return Json(GetAllSessionList().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
private static IEnumerable<ListsViewModel> GetAllSessionList()
{
var context = new HEntities();
return context.vwSessionListConfigs
.OrderBy(x => x.FirstName).ThenBy(x => x.FamilyName)
.Select(session => new ListsViewModel
{
ConsumerID = session.ConsID,
ConsumerHCID = session.ConsHCL,
ConsumerHRN = session.ConsHRK,
ConsumerFirstName = session.FirstName,
ConsumerFamilyName = session.GivenName,
ConsumerGender = session.Gender,
});
}
查看:
@(Html.Kendo().Grid<Web_App.ViewModel.ListsViewModel>()
.Name("SList")
.HtmlAttributes(new { @Style = "align:center; font-size:10px;" })
.Columns(columns =>
{
columns.Bound(p => p.ConsID).Visible(false);
columns.Bound(p => p.ConsHCL).Width(80);
columns.Bound(p => p.ConsHRK).Width(50);
columns.Bound(p => p.FirstName).Width(80);
columns.Bound(p => p.GivenName).Width(80);
columns.Bound(p => p.ConsumerAlias).Width(45);
columns.Bound(p => p.Gender).Width(30);
columns.Command(commands => commands.Edit()).Width(175);
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable()
.Selectable(s => s.Mode(Kendo.Mvc.UI.GridSelectionMode.Single))
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.ServerOperation(true)
.Model(model => model.Id(p => p.ConsID))
.Read(read => read.Action("GetSession", "Manage").Type(HttpVerbs.Get))
.Update("Edit", "Manage")
)
.Events(events => events
.Change("change"))
)
答案 0 :(得分:3)
在将集合传递给ToDataSourceResult方法之前对集合进行排序并不重要。 ToDataSourceResult方法将在内部再次按模型的第一个属性对集合进行排序。
要最初对集合进行排序,您应该使用dataSource的Sort方法。
.DataSource(dataSource => dataSource
.Ajax()
.Sort(st => {
st.Add(m => m.Name).Descending();
st.Add(m => m.PersonID).Descending();
})