2012-10-28 66 views
1

我在網格中返回以下信息,但它不會按姓氏排序,然後按姓氏排序。請讓我知道我能做到這一點。我目前使用MVC4和kendoui電網linq orderby未排序的asc不工作

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



) 
+1

我敢打賭,這是網格,而不是導致問題的Linq。你可以給網格顯示一些代碼嗎? – DaveShaw

+0

嗨戴夫,謝謝。我已經從控制器更新我的代碼並查看 – Spidey

回答

1

不要緊,你如何將它傳遞給ToDataSourceResult方法之前排序的集合。 ToDataSourceResult方法將在內部再次按照模型的第一個屬性對集合進行排序。

要初始化您的集合,您應該使用dataSource的Sort方法。

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

       st.Add(m => m.Name).Descending(); 
       st.Add(m => m.PersonID).Descending(); 
      }) 
+0

thx XMR for your answer – Spidey