2012-07-05 2 views
1

저는 JQGrid를 처음 사용합니다. 내가 직면 한 문제를 설명해 드리겠습니다 ...JQGrid 서버 측 페이지 매김이 작동하지 않습니까?

내부적으로 JQGrid를 사용하고 바깥 쪽에서 그리드를 제어하고 있습니다. 예 : 검색 요소를 사용하여 그리드의 행을 필터링하고 있습니다.

그리드가로드 될 때 페이저는 정상적으로 작동하지만 데이터를 필터링 할 때 페이저가 작동하지 않고 무한한 값이 표시됩니다. 아무도 거기에 내 코드를 게시 할 수 없기 때문에 나에게도 해결책을 말해 줄 수 있습니까? 위의 문제에 대한 작업 예제가 실제로 감지 할 수 있다면 ...

+0

참조 Olegs의 anwser (내가 LINQ를 사용하여있는 jqGrid에서 검색을 구현하기위한 매우 유용하지 않을 경우 중추적이었다, 그 안에 스콧 오클라호마의 동적 LINQ 라이브러리를 사용했다) 여기에 : http://stackoverflow.com/questions/8479777/add-paging-for-jqgrid –

답변

1

코드를 볼 수없는 것은 조금 어렵다. 그러나 여기에 내가있는 jqGrid를 사용하는 프로젝트에 페이지 매김을 구현하기 위해 내 프로젝트 중 하나에 사용 된 코드는

서버 측 코드 (어쨌든 당신을 할 수 있는지, 또는 디버깅을 시작하는 위치에 표시)입니다

public ActionResult GridData(int page, int rows, string searchField = "", string searchString = "", 
            string searchOper = "", string sidx = "ID", string sord = "desc") 
     {   
      int pageIndex = Convert.ToInt32(page) - 1; 
      int pageSize = rows; 

      var items = _repo.GetItemDatacollection(searchField, searchString, searchOper, pageIndex, pageSize, sidx, sord); 

      int totalRecords = _repo.GetAll().Count(); 
      var totalPages = (int)Math.Ceiling(totalRecords/(float)pageSize); 

      var jsonData = new 
      { 
       total = totalPages, 
       page, 
       records = totalRecords, 
       rows = (from item in items.ToList() 
         select new 
         { 
          i = item.ID, 
          cell = new[] { item.ID, item.Name } 
         }).ToArray() 
      }; 
      return Json(jsonData, JsonRequestBehavior.AllowGet); 
     } 

기본적으로 GetItemDataCollection은 이와 유사합니다.

return _entities.Set<T>().Where(ConvertOpr(searchOper, searchField), searchString) 
             .OrderBy(sidx + " " + sord) 
             .Skip(pageIndex * pageSize) 
             .Take(pageSize); 

있는 jqGrid 구현

jQuery('#theGrid').jqGrid({ 
      url: '@Url.Action("GridData")', 
      datatype: 'json', 
      mtype: 'GET', 
      //... 
}); 
+0

많은 고마워 .... 나는 며칠 전에 대답을 ... 나는 또한 당신의 동일한 접근법을 사용 ... .. – Esh

관련 문제