2011-05-13 123 views
0

你好,我使用的jqGrid我的項目,我需要實現分頁,所以我發現在PHP代碼,並將它複製到Java的:Spring MVC的分頁

@RequestMapping(value = "getgriddata", method = RequestMethod.GET) 
    public @ResponseBody 
    String getGrid(@RequestParam("page") String page, @RequestParam("rows") int rownumber, @RequestParam("sidx") String sortBy, @RequestParam("sord") String sortOrder,@RequestParam(value = "_search") String search, @RequestParam(value="filters", required = false) String filters) { 

     int totalCount = dao.getTotalRecordCount(); 

     CustomJsonResponse response = new CustomJsonResponse(); 

     int totalPages = 0; 

     if (totalCount > 0) { 
      totalPages = (int) Math.ceil(totalCount/rownumber); 
     } 

     if (Integer.valueOf(page) > totalPages) { 
      page = String.valueOf(totalPages); 
     } 

     Gson jsonConverter = new Gson(); 

     int start = (rownumber * Integer.valueOf(page)) - rownumber; 
     Filters searchFilter = null; 

     if(Boolean.valueOf(search) == true){ 
      searchFilter = jsonConverter.fromJson(filters, Filters.class); 
     } 

     // Retrieve records from database 
     List<Record> recorBatch = dao.getRecords(start, rownumber, sortBy, sortOrder, search, searchFilter); 

     // Assign the result from the service to this response 
     response.setRows(recorBatch); 
     response.setTotal(String.valueOf(totalPages)); 
     response.setRecords(String.valueOf(stagingLoadBatch.size())); 
     response.setPage(page); 

     return jsonConverter.toJson(response); 
    } 

該工程確定,當我m可以處理整組數據,但是當我縮小搜索範圍時,即在某個時間間隔內選擇記錄時,分頁會失效。我意識到這是不好的做法,我已經從這段代碼複製它分頁:

http://pastebin.com/ybKSXzyq

可有人建議這更好的解決辦法?

回答

3

我建議你看看Display Tag Library,分頁。

+0

我使用的jqGrid不顯示庫,TX – London 2011-05-13 11:54:19

+0

@London:是的,但在我看來,這不是解決你的分頁問題,​​因爲你自己提到你有PHP代碼砍死。那麼,爲什麼不去找一些Java呢? – 2011-05-14 19:11:33

+0

,因爲我幾乎完成了這個項目,但沒有給這個分頁,但認爲它一直在工作,我現在無法切換所有的邏輯。 – London 2011-05-15 15:27:01

0

我做全面實施它我也JQGridPage.java類包含jqGrid的數據

public class JQGridPage<T> { 

    private Integer page; 
    private Integer total; 
    private Long records; 
    private List<T> rows; 
.... 
} 

和控制器方法我加油吧並將其作爲方法的返回

@RequestMapping(value = "", method = RequestMethod.GET, params = "page") 
@ResponseBody 
public JQGridPage<T> listPages(
     @RequestParam(value = "page", defaultValue = "1") int page, 
     @RequestParam(value = "rows", defaultValue = "10") int rows, 
     @RequestParam(value = "sidx", defaultValue = "id") String sortField, 
     @RequestParam(value = "sord", defaultValue = "ASC") String sortDirection, 
     @RequestParam(value = "searchField", defaultValue = "id") String searchField, 
     @RequestParam(value = "searchOper", defaultValue = "eq") String searchOper, 
     @RequestParam(value = "searchString", defaultValue = "") String searchString) { 
..... 
    JQGridPage<T> jqGrid = new JQGridPage<T>(); 
    jqGrid.setPage(page); 
    jqGrid.setTotal(pageOfCustomer.getTotalPages()); 
    jqGrid.setRecords(pageOfCustomer.getTotalElements()); 
    jqGrid.setRows(pageOfCustomer.getContent()); 
    return jqGrid; 
} 
0

這是我pangination結果Spring MVC中
image1

image2

image3