>  기사  >  웹 프론트엔드  >  bootstrap-table은 서버 측 페이징 기능을 구현합니다.

bootstrap-table은 서버 측 페이징 기능을 구현합니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-04-18 14:10:123029검색

이번에는 서버 측 페이지 매김 기능을 구현하는 bootstrap 테이블과 서버 측 페이징 notes을 구현하는 bootstrap-table을 가져왔습니다. 다음은 실제 사례입니다.

최근에는 프론트엔드에서 부트스트랩 테이블 플러그인을 사용하고 있습니다. 클라이언트측 페이징이 너무 크면 상호작용이 좋지 않기 때문에 서버측에서는 대용량 데이터를 페이징하는 데 사용합니다. 코드 시작

프런트엔드

먼저 부트스트랩 테이블이 전달하는 기본 페이징 매개변수를 살펴보겠습니다

  • 오프셋은 어떤 인덱스에서 시작되나요?

  • limit 페이지당 제한 수

기본 페이징 매개변수와 다를 수 있으므로 수정하기로 결정했습니다. 백그라운드로 전달되는 매개변수는

  • 입니다. page 0부터 시작하는 페이지

  • size 각 페이지에 표시되는 숫자

  •   $('#'+ tableId).bootstrapTable({
         queryParams:function(e) {
          varparam = {
           size: e.limit,
           page: (e.offset / e.limit),//不需要+1
          };
          returnparam;
         },
         sidePagination:“server”;
    });

백스테이지

@ApiOperation(value ="获取企业列表,支持分页", notes ="json方法获取用户列表")
@ApiImplicitParams({@ApiImplicitParam(name ="name", value ="企业名称", required =true, dataType ="string"),
@ApiImplicitParam(name ="beginTime", value ="开始时间", required =true, dataType ="string") })
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
publicMap<String,Object> list(@RequestParamMap<String,Object> map,@RequestParam(required =false) String name,@RequestParam(required =false) String beginTime,@RequestParam(required =false) String endTime,@RequestParam(required =false) Integer deptid){
 List<Map<String,Object>> list =newArrayList<>();
 //当前页数
 intpage = map.get("page")==null?0: Integer.parseInt(map.get("page").toString());
 // 每页行数
 intsize = map.get("size") ==null?10: Integer.parseInt(map.get("size").toString());
 Order order =newOrder(Direction.ASC,"id");
 Order order1 =newOrder(Direction.DESC,"createTime");
 List<Order> orders =newArrayList<Order>();
 orders.add(order1);//先按照createTime 降序排序 然后按照id升序
 orders.add(order);
 Sort sort =newSort(orders);
 Pageable pageable =newPageRequest(page,size,sort);
 Page<Company> companyPages =null;
 if(StringKit.isEmpty(name)){
  companyPages = companyService.companyDao.findAll(pageable);
 }else{
  companyPages = companyService.companyDao.findByNameLike(name,pageable);
 }
 
 List<Company> companyList = companyPages.getContent();
 SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 for(Company company:companyList){
  Map<String,Object> mapTemp = BeanKit.describe(company);
  mapTemp.put("createTime", sdf.format(company.getCreateTime()));
  list.add(mapTemp);
 }
  Map<String,Object> data =newHashMap<String,Object>();
  data.put("total", companyPages.getTotalElements());
  data.put("rows", list);
 returndata;
}

주의

부트스트랩 테이블에서 받은 매개변수에는 총계와 행이 포함되어야 합니다. 총계는 총 수량이고 행은 각 페이지의 수입니다. 이 기사의 사례를 읽은 후 이 방법을 익히셨을 것입니다. 기타 관련 기사는 PHP 중국어 웹사이트에 있습니다!

추천 도서:

Angularjs는 이미지 미리보기 및 업로드를 구현합니다.


vue는 axios 및 패키징을 사용합니다.


위 내용은 bootstrap-table은 서버 측 페이징 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.