首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在分页jquery数据表中的ajax调用中每页发送分页数和分页数据。

问无法在分页jquery数据表中的ajax调用中每页发送分页数和分页数据。
EN

Stack Overflow用户
提问于 2020-06-10 05:25:05
回答 2查看 288关注 0票数 2

我试图从html页面的分页中加载ajax调用中的数据,但不知何故它不起作用。不能理解这个问题

我已经检查了这个链接,但是ajax调用在我的代码中不起作用,我需要获取公司注册列表,并在datatable中填充分页的实现,同时通过分页控制页面的加载时间。(就像记录是5000,所有这些记录一起加载,我需要从ajax修复服务器端分页)

Passing pageable (spring data) in post request

代码语言:javascript
复制
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js">

<script type="text/javascript">
         $(document).ready(function(){
           $('#shortstorage').DataTable({
                    "pageLength": 5,
                    "processing": true
                    "serverSide": true
                      "ajax": {
                       "url": "/getcompany",
                     "type": "GET"
              }
                  }
                       } );
        });
   </script>

调用控制器中的getcompanyy方法。

代码语言:javascript
复制
@RequestMapping(value = "/getcompanyy", method = RequestMethod.GET)
    public String getCompanyy(Model model,HttpServletRequest request, @PageableDefault(value=10, page=0) Pageable pageable) {


        pageable = new PageRequest(pageable.getPageNumber(), pageSize, sort);

 Page<CompanyRegistration> compregPag = companyregister.findAll(pageable);
      List<CompanyRegistration> compreg = compregPag.getContent();
model.addAttribute("compreg",compreg);
return "admin/company";

错误

代码正在加载数据表中的所有行,而没有应用

的分页。

EN

回答 2

Stack Overflow用户

发布于 2020-06-10 10:54:36

您实际上应该返回JSONObject,看看这个RestController,我认为这是您需要的:

https://github.com/solutionman/BaseProject/blob/master/src/main/java/com/project/base/controller/BaseProjectRestController.java

代码语言:javascript
复制
<table id="shortstorage" class="display">
</table>

$(document).ready( function () {
var table = $('#shortstorage').DataTable({
    ajax: '/base/getcompany',
    sAjaxDataProp: 'data',
    processing: true,
    serverSide: true,
    // "order": [[ 0, "asc" ]],
    columns: [
        { data: "id", title : 'id'},
        { data: "name", title: 'name' },
        { data: "shortname", title: 'shortname' }
    ]
})

});

代码语言:javascript
复制
    @RequestMapping(path = "/getcompany", method = RequestMethod.GET)
public Map< String, Object > getcompany(@RequestParam Map<String, String> data) {

    Map<String, Object> result = new HashMap<>();

    Integer draw = Integer.parseInt(data.get("draw"));

    ArrayList<Object> youObjectsSelected = new ArrayList<>(); // put your selected objects here
    int start = Integer.parseInt(data.get("start"));
    int length = Integer.parseInt(data.get("length"));
    for( int j = 0; j < 50; j++ ){
        Company company = new Company();
        company.setId(j);
        company.setName("someName");
        company.setShortname("shortName");
        youObjectsSelected.add(company);
    }
    ArrayList<Object> yourSObjectsForPage = new ArrayList<>(); // get only objects for displaying on page
    for( int k = start; k < start + length; k++ ){
        yourSObjectsForPage.add( youObjectsSelected.get(k) );
    }

    result.put("draw", draw);
    result.put("recordsTotal", 100);
    result.put("recordsFiltered", youObjectsSelected.size());
    result.put("data", yourSObjectsForPage);

    return result;
}

从开始和长度(从数据)获得的分页数和页数:

int = Integer.parseInt(data.get(" start "));

整数长度= Integer.parseInt(data.get(" length "));

并根据它们从数据库中为行选择对象,例如,arrayList。

票数 0
EN

Stack Overflow用户

发布于 2020-06-10 11:01:26

代码语言:javascript
复制
Page<CompanyRegistration> compregPag = companyregister.findAll(pageable);
//List<CompanyRegistration> compreg = compregPag.getContent();
model.addAttribute("compregPag",compregPag); 

compregPag有需要的内容和元数据。使用它作为模型属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62296439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档