2016-11-09 9 views
1

私はサーバー側のページ付けを実装しようとしています、jquerydatatableでフィルタリングしています。datatableサーバーサイドページングは​​常に1ページを表示

しかし、常に1ページだけをフッターに作成します。

引き分け= 1、getPointUsers.Count()= 5、totalCountプロパティ=私はページごとに5つのレコードを示しています6

public JsonResult UserList(int draw, int length, int start) 
     { 
      PaginattionModel<PointUserModel> paginationModel = new PaginattionModel<PointUserModel>() 
      { 
       draw = draw 
      }; 
       int sortColumn = -1; 
       string sortDirection = "asc"; 
       if (Request.Form["order[0][column]"] != null) 
       { 
        sortColumn = int.Parse(Request.Form["order[0][column]"]); 
       } 
       if (Request.Form["order[0][dir]"] != null) 
       { 
        sortDirection = Request.Form["order[0][dir]"]; 
       } 
       int totalCount = 0; 
       PointUserFilter pointUserFilter = new PointUserFilter() 
       { 
        PageSize = length, 
        PageNumber = start, 
        SortDirection = sortDirection, 
        SortColumnNo = sortColumn 
       }; 
       var getPointUsers = pointUserBl.GetPointUsers(pointUserFilter, out totalCount); 
       paginationModel.data = getPointUsers; 
       paginationModel.recordsFiltered = getPointUsers.Count(); 
       paginationModel.recordsTotal = totalCount; 
       return Json(paginationModel, JsonRequestBehavior.AllowGet); 
     } 

これら

は値です。 2ページを作成する必要があります。しかし、そうではありません。

+0

をご覧ください:http://www.codeproject.com/Articles/1118363/GridView-with-Server-Side-Filtering-Sorting-and-Pa –

+0

@ EhsanSajjad:その記事によると。 'totalCount'は常にテーブル内の合計行数になります。 'filteredCount'はフィルターを適用した後のレコードの総数になります。これは 'totalcount'が決して変更されないことを意味します。 私はそうですか? –

+0

はい、あなたは正しいです –

答えて

0

私は、これは、それは常に1ページであることを引き起こしている行であると信じて:

paginationModel.recordsFiltered = getPointUsers.Count(); 

あなたは「getPointUsers.Count()」「5」であると述べました。したがって、recordsFilteredデータ項目は、現在適用されている検索フィルタで使用可能なレコードの総数です。したがって、ページサイズが5で、recordsFilteredが5の場合、DataTableは現在のフィルタで表示できるページが1つしかないと考えます。私は "recordsFiltered"が存在しなければ、 "recordsTotal"はページング計算に使用されるとは思わない。

"recordsFiltered"の値は返されるデータ項目の数に基づいているため、エラーは「totalCount」の計算方法にある可能性があります。 DataTableに検索フィルタを適用しない場合は、決して異なるものではないため、「recordsTotal」と「recordsFiltered」に「getPointUsers.Count()」を使用できます。

関連する問題