使用片段重新加载表数据表

时间:2018-01-05 19:29:00

标签: html ajax spring-boot datatables thymeleaf

我试图通过ajax重新加载片段,但是当我重新加载我的事件时,select既不能用于行计数,也不意味着默认配置不能正常工作:

        @PostMapping("/admin/add") 
        public String add(@ModelAttribute(name = "client") Client client,Model model){

        client.setPassword("sdfsdf");
        client.setPoints(2);
        clientServiceImpl.addOne(client);

        return "clients :: resultsList";


}

这是我的js文件:

    /*start method*/
          var rowBodyClient = document.getElementById('rowBodyClient');

          // Use Ajax to submit form data
          var url = "/admin/clients/add"; // El script a dónde se realizará la petición.
          $.ajax({
                type: "POST",
                url: url,
                data: $("#form-client").serialize(), // Adjuntar los campos del formulario enviado.
                success: function(data)
                {
                    if(data != null)
                    {

                    console.log(data);  
                    rowBodyClient.innerHTML = data;
                    table.draw();

                    }else{


                    $("#snackbar").text("Hubo un error al ingresar el cliente");
                    $("#snackbar").addClass("alert alert-danger");
                    $("#snackbar").addClass("show");


                    setTimeout(function(){ $("#snackbar").removeClass("show"); }, 3000);

                    $('#form-client').parsley().reset();


                  }    

                }

          });

enter image description here 我已经更换了tbody,但是它可以工作,但数据表会正确地重新启动

enter image description here

1 个答案:

答案 0 :(得分:0)

我过去遇到了同样的问题,我用下一个方式解决了这个问题。 " DT-OPT"是表的id。此代码位于ajax的成功函数内。此代码向服务器发送请求以加载特定片段

$("#dt-opt").load('?loadFragment=true');

这个,加载表格。

@GetMapping(value = {"", "/"})
public ModelAndView showStudios(ServletRequest request,
        @RequestParam(name = "loadFragment", required = false) Boolean loadFragment) {

    List<StudioDto> l = studioService.listForCurrentOwner();

    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("studios", l);

    if (loadFragment != null && loadFragment) {
        //Loads the fragment named studiosList on studios view
        modelAndView.setViewName(VIEW_PATH + "/studios :: studiosTable");
    } else {
        //Loads all the view
        modelAndView.setViewName(VIEW_PATH + "/studios");
    }

    return modelAndView;
}

给我发个人信息,我可以帮助你。