2011-05-13 70 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