2013-12-20 3 views
2

과수원 사용자 정의 모듈에 Webgrid를 적용했으며 페이징이 정상적으로 작동하지만 정렬에 문제가 있습니다. 정렬은 defaultSort로 설정된 한 열에서만 작동하며 다른 열 정렬이 작동하지 않습니다. 이 기본 정렬 작업의 기본 그래서에만 접촉 열로 설정 열 접촉을 sorting.If 때문에WebGrid 정렬이 오차드와 작동하지 않습니다.

<div id="gridList"> 
       @{ 
    var grid = new WebGrid<Models.ServicePart>(null, rowsPerPage: Model.PageSize, canPage: true, defaultSort: "Name", ajaxUpdateContainerId: "myGrid"); 
        grid.Bind(Model.ServiceList, rowCount: Model.TotalCount, autoSortAndPage: false); 
        grid.Pager(mode: WebGridPagerModes.All); 
       } 
       <div id="myGrid"> 
        @MvcHtmlString.Create(grid.GetHtml(tableStyle:"items", columns: grid.Columns(
        grid.Column("Name",header: "Name",style:"width30percent"), 
        grid.Column(columnName:"Contact",header: "Contact", style:"width30percent"), 
        grid.Column("ServiceTypeRecord.TypeName",header: "Service Type",style:"width25percent"), 
        grid.Column("", header: "Action", format :(item) => Html.Raw(
         (Authorizer.Authorize(Permissions.EditContent, item) ? (Html.ItemEditLink(T("Edit").Text, item)).ToString() : "") + " | " + (Authorizer.Authorize(Permissions.EditContent, item) ? (Html.Link(T("Delete").Text, Url.ItemRemoveUrl(item, new { returnUrl }), new { itemprop = "RemoveUrl UnsafeUrl" })).ToString() : "") 
        ),style:"width15percent") 
        )).ToString()) 
       </div> 
      </div> 

은 이름 열에서 작업 정렬이.

답변

0

내 모델을 webgrid에 바인딩 할 때 필수 열 이름이므로 grid.Bind에 열 이름을 추가하십시오. 정렬 기능이 작동합니다.

var grid = new WebGrid<Models.ServicePart>(null, rowsPerPage: Model.PageSize, canPage: true, defaultSort: "Name", ajaxUpdateContainerId: "myGrid"); 
       grid.Bind(Model.ServiceList,new[]{"Name","Contact","ServiceTypeRecord.TypeName"}, rowCount: Model.TotalCount, autoSortAndPage: false); 
       grid.Pager(mode: WebGridPagerModes.All); 
관련 문제