1

グリッドに次の情報が返されますが、最初に姓、次に姓の順でレコードが並べ替えられません。どうすればこれを達成できるか教えてください。私は現在MVC4と剣道グリッドを使用しています

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"))



)
4

1 に答える 1

3

コレクションをToDataSourceResultメソッドに渡す前に、コレクションをどのようにソートするかは重要ではありません。ToDataSourceResultメソッドは、モデルの最初のプロパティによってコレクションを内部的に再度ソートします。

コレクションを最初に並べ替えるには、dataSourceのSortメソッドを使用する必要があります。

.DataSource(dataSource => dataSource
            .Ajax()
            .Sort(st => {

                st.Add(m => m.Name).Descending();
                st.Add(m => m.PersonID).Descending(); 
            })
于 2012-10-30T19:57:53.040 に答える