layui 前端分页 后端分页

1,前端分页

效果图:

在这里插入图片描述

代码:
	layui.use('table', function(){
		 var table = layui.table;
		 
		 //第一个实例
		 table.render({
		   elem: '#demo'
		   ,height: 312
		   ,url: '/demo/table/user/' //数据接口
		   ,page: true //开启分页
	       ,limit:2000 // 当前页数
           ,limits: [1,15, 30, 50,100,200,500,5000,10000,20000,50000] // 页数容量
		   ,cols: [[ //表头
		     {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
		     ,{field: 'username', title: '用户名', width:80}
		     ,{field: 'sex', title: '性别', width:80, sort: true}
		     ,{field: 'city', title: '城市', width:80} 
		     ,{field: 'sign', title: '签名', width: 177}
		     ,{field: 'experience', title: '积分', width: 80, sort: true}
		     ,{field: 'score', title: '评分', width: 80, sort: true}
		     ,{field: 'classify', title: '职业', width: 80}
		     ,{field: 'wealth', title: '财富', width: 135, sort: true}
		   ]]
		 });
	});

2,后端分页

效果图:

在这里插入图片描述

代码:

前端代码:


	<div class="fp-table" style="width: 100%">
	    <table id="hstable" lay-filter="hstool"></table>
	    <div id="pageid"  style="text-align: left;border:1px solid rgba(229, 229, 229, 1);border-top: none ;height: 41px"></div>
	</div>

查询功能:


	function searchBtn(pageNumberg,pageSizeg) {
        hsdata(pageNumberg,pageSizeg);
 	}
 
	function hsdata(pageNumberg,pageSizeg) {
        var fieldValues = {};
        fieldValues.currentPage=pageNumberg?pageNumberg:1;
        fieldValues.pageSize=pageSizeg?pageSizeg:15;
        fieldValues.searchBtn='searchBtn';
        
        ----------------------------------------------------
        $.ajax({
            type: 'post',
            async: false,
            data: fieldValues,// 参数
            url: "",
            dataType: 'JSON',
            success: function (dataremote) {
                hstable(dataremote) // 响应回来的数据
            }
        });
        
		----------------------------------------------------或者
		
 		dLong.getJSON("",fieldValues,function(data){
            if (data.success) {
                hstable(data)
            }else {
                hstable([],true)
            }
        },true);
        
    }

数据表格:


 <style>
	.soul-bottom-contion {
        height: 31px;
        /*line-height: 29px;*/
        border-top: solid 1px #e6e6e6;
        display:none;
    }
    .soul-bottom-contion .condition-items {
        display: inline-block;
        width: calc(100vw - 100px);
        height: 30px;
        float: left;
        /*overflow: hidden;*/
        white-space: nowrap;
        display:none;
    }
 
 </style>
    
	function hstable(data) {
        var table = layui.table;
        pages=data?data.commonPage.pageSize:15
        var ins1=table.render({
            elem: '#hstable',
            height: "full-110",
            // width: 7* CLIENTWIDTH / 10,
            size: 'sm' ,
            filter:{
                bottom:false
            },
            page:false,// 关闭layui数据表格自带的分页样式
            limit:data?data.commonPage.pageSize:15,
            limits:[15,30,60,80,160,300,600,1000,2000,5000,10000,20000,50000],
            where: {
                "checkType":1,//自定义参数
                "page":data?data.commonPage.pageIndex:1,//当前页(必传参数,可改变参数名)
                "size":data?data.commonPage.pageSize:20,//每页条数(必传参数,可改变参数名)
            },
            cols: [[]],
            data: data? data.commonPage.resultlist : [],
            // data: data? data : [],
            done: function (res, curr, count) {
                layui.soulTable.render(this)
                doneCallback(data) // 回调函数
            }
        });
    }
    

回调函数:


// 分页回调函数,自定义分页渲染
    function doneCallback(data){
        layui.laypage.render({
            elem: 'pageid', //注意,这里的 test1 是 ID,不用加 # 号
            count: data?data.commonPage.result.total:0, //数据总数,从服务端得到,
            limit:data?data.commonPage.pageSize:15,
            curr:data?data.commonPage.pageIndex:1,
            limits:[15,30,60,80,160,300,600,1000,2000,5000,10000,20000,50000],
            layout:  ['prev', 'page','count', 'next', 'limit', 'skip'],// 自定义排版
            page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
                layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
                //,curr: 5 //设定初始在第 5 页
                ,groups: 6 // 连续出现的页码个数
            },
            skip: true, //是否开启跳页
            theme:"#009688", // 主题样式
            jump:function (obj,first) {
                if(!first){
                    searchBtn(obj.curr,obj.limit); // 传递参数
                }
            }
        });
    }
    

后端代码:


	@RequestMapping("/getItemList")
	@ResponseBody
    public HashMap<String, Object> getItemList(@RequestParam Map<String,String> paraMap){
        try {
            String sql="";
            HashMap<String, Object> stringObjectHashMap = new HashMap<>();
            if(!StringUtil.isEmptyOrLength0(paraMap.get("search"))){
                sql=" select * from table1 WHERE (ITEMNAME like :search or ITEMCODE like :search) and itemcode not in (select itemcode from table2 where rulecode=:rulecode) ";
                stringObjectHashMap.put("search","%"+paraMap.get("search")+"%");
            }else {
                sql=" select * from table1 where itemcode not in (select itemcode from table2 where rulecode=:rulecode)";
            }
            stringObjectHashMap.put("rulecode",paraMap.get("rulecode"));
            stringObjectHashMap.put(PageUtil.ORDER_BY, "ITEMNAME@desc,ITEMCODE@desc");
            stringObjectHashMap.put(PageUtil.PAGE_INDEX, StringUtil.isEmptyOrLength0(paraMap.get("currentPage")) ? 1L : Integer.parseInt(paraMap.get("currentPage")));
            stringObjectHashMap.put(PageUtil.PAGE_SIZE, StringUtil.isEmptyOrLength0(paraMap.get("pageSize")) ? 15L : Integer.parseInt(paraMap.get("pageSize")));

            CommonPage commonPage =
                    PageUtil.newPageUtil(stringObjectHashMap, sql, "").execSearch(new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource()));
            HashMap<String, Object> result = createResult(true, "");
            result.put("commonPage",commonPage);
            return result;
        } catch (Exception e) {
            log.error("系统错误!"+e.getMessage(),e);
            return  createResult(Boolean.FALSE,"操作失败。");
        }
    }
    

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: layui是一款基于jQuery的前端UI框架,它不仅提供了丰富的UI组件,还提供了一些方便的工具函数和方法,其中就包括ajax请求后端数据的方法。 在使用layui实现ajax请求获取后端数据并展示在前端的过程中,我们需要遵循以下步骤: 1. 引入layui的相关资源文件: 在HTML页面中引入layui的资源文件,包括layui.js和相关的CSS文件,确保可以正确使用layui的功能。 2. 使用layui的ajax方法发送请求: 通过layui的ajax方法发送GET或POST请求,向后端发送数据请求。可以指定请求的URL、请求的类型、请求的数据等参数。例如: layui.$.ajax({ url: '后端接口地址', type: 'GET', // 或 'POST' data: { 参数名1: 参数值1, 参数名2: 参数值2 }, success: function(res){ // 请求成功的回调函数 // res为后端返回的数据 }, error: function(){ // 请求失败的回调函数 } }); 3. 处理后端返回的数据: 在请求成功的回调函数中,可以对后端返回的数据进行处理。可以使用layui的组件或自定义的方法将数据展示在前端页面上。例如: layui.use(['table'], function(){ var table = layui.table; // 渲染表格组件,并将后端返回的数据填充到表格中 table.render({ elem: '#tableId', // 表格元素的ID data: res.data, // 后端返回的数据 cols: [[ {field: '字段名1', title: '标题1'}, {field: '字段名2', title: '标题2'}, // ... ]] }); }); 通过上述步骤,我们可以使用layui的ajax方法从后端获取数据,并将数据展示在前端页面上。当然,在实际应用中,我们需要根据具体需求,对请求和展示的逻辑进行进一步的处理。 ### 回答2: 在前端使用Layui和Ajax来获取后端数据并展示,可以按照以下步骤操作: 1. 首先,在HTML页面中引入Layui的相关样式表和脚本文件,确保页面正常加载Layui的效果。 2. 在HTML页面中创建一个容器,用于展示后端数据。可以使用Layui的表格组件或其他适合的组件,具体根据后端返回的数据类型和显示需求来确定。 3. 使用Ajax向后端发送请求,获取数据。可以使用Layui的Ajax方法`$.ajax()`来发送GET或POST请求,其中包括请求的URL、请求的数据等参数。 4. 在Ajax的回调函数中,处理后端返回的数据并展示在页面中。根据后端返回的数据类型,可以使用Layui的表格组件的方法(如`table.render()`)来渲染表格,并将数据填充到表格中,或者直接使用页面操作DOM的方式来展示数据。 5. 根据需求,可以对数据进行排序、筛选、分页等操作,Layui提供了相应的组件和方法,可以根据实际情况进行调整。 6. 最后,根据需要可以添加其他交互效果,如点击事件、弹窗等,以提升用户体验。 需要注意的是,获取后端数据并展示在前端是一个异步的过程,所以在Ajax请求的过程中,页面上可能需要显示一些加载中的提示,以避免用户的不良体验。 以上就是使用Layui和Ajax来获取后端数据并展示在前端的基本步骤。具体的操作根据实际情况会有所不同,可能需要根据项目需求进行一些定制化的开发。 ### 回答3: 要在前端展示后端数据,可以借助layui框架的ajax功能。 首先,在前端页面中引入layui库,并定义一个div容器,用于展示后端数据。 然后,使用layui的ajax方法发送请求,获取后端数据。ajax方法需要配置接口地址、请求类型和回调函数等参数。 在回调函数中,可以获取到从后端返回的数据。可以使用layui的laytpl模板引擎,将数据和HTML模板结合,渲染出需要展示的内容。 具体操作步骤如下: 1. 在页面中引入layui库和相关样式: ``` <link rel="stylesheet" href="layui/css/layui.css"> <script src="layui/layui.all.js"></script> ``` 2. 在HTML页面中定义一个展示后端数据的容器: ``` <div id="container"></div> ``` 3. 使用layui的ajax方法发送请求并获取后端数据: ``` layui.use('jquery', function(){ var $ = layui.$; $.ajax({ url: '后端接口地址', type: 'GET', success: function(data){ // 后端返回的数据将存储在data中 // 在这里使用laytpl模板引擎渲染数据 var tpl = $('#template').html(); // 获取HTML模板的内容 var render = layui.laytpl(tpl); // 初始化laytpl模板 var html = render.render(data); // 渲染数据 $('#container').html(html); // 将渲染好的内容显示在容器中 }, error: function(){ // 处理错误情况 } }); }); ``` 4. 在页面中定义与数据对应的HTML模板: ``` <script type="text/html" id="template"> {{# layui.each(d, function(index, item){ }} <div>{{ item.name }}</div> {{# }); }} </script> ``` 以上就是如何使用layui的ajax方法获取后端数据并在前端展示的方法。请根据实际情况修改代码中的接口地址和数据渲染逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值