基于layui的数据表格,在修改第n页数据后页码还能保持在当前页面

简介: 基于layui的数据表格,在修改第n页数据后页码还能保持在当前页面

1.第一种方法


页面数据加载完之后把页码数存储到本地localStorage,页面数据重新渲染的时候指定页码为本地缓存中的页码。


优点是客户后面再打开页面直接展示上次阅读的页数,并且页面某行数据修改之后,页面重新渲染还能保留在当前页


缺点是重新渲染页面有类似刷新一样的效果,体验比较差。而且如果带有搜索条件之后,需要判断如果是搜索需要清空localStorage之中的页码数,如果直接点击页数不需要清空localStorage之中的页码数。


代码示例:

   , page: {
                 limit:  10
                , limits: [ 10, 15,  30,  60,  90,  120,  150]
                , curr: localStorage. getItem( "spgl_curr")? localStorage. getItem( "spgl_curr"): 1      //指定本地存储的页码
            }
            , done :  function ( res,  curr,  count) {     
                     console. log( res,  curr,  count);
                     localStorage. setItem( "spgl_curr", curr); //存储页码
            }

0.png

2.第二种方法(推荐)


不使用本地存贮页码数,在修改完某行记录后,发送ajax请求获取当前行最新的数据更新到此行对应位置即可。数据没有重新渲染,只是修改那条更新哪条,所以页面仍然保持在当前页面。


缺点是:客户后面再打开页面不能直接展示上次阅读的页数,但是能保证修改某条记录后依然保持在当前页面,页面无刷新。


可以方法1和方法2结合使用效果更佳

   layer. open({
                 type: 2,
                 title: "修改信息",
                 content: "{:url('add_good')}?id="+ id,
                 area:[ "800px", "520px"],
                 end : function (){
                     //return false;
                     //同步更新此条对应的值
                     //发送ajax请求页面
                     $. post( "{:url('ajax_get_good_info')}",{ id: id}, function( data){
                         obj. update({
                             goodsname:  data. info. goodsname
                            , goodsintegral:  data. info. goodsintegral
                            });
                }, "json")                    
                }
            })

1.png

修改某条记录页面代码如下:

    //一般直接写在一个js文件中
     layui. use([ 'element',  'form',  'layedit'],  function () {
       var  form =  layui. form;
       //监听提交1
       form. on( 'submit(sub)',  function ( data) {
         load =  layer. load( 2, {  shade: [ 0.1,  '#fff'] });
         $. post( "{:url('ajax_add_good')}",  data. field,  function ( data) {
           layer. close( load);
           if ( data. sta ==  1) {
             layer. msg( data. msg);
             setInterval( function () {
               window. parent. layer. closeAll(); //关闭弹窗
               //window.parent.get_table();
            },  1500);
          }  else {
             layer. msg( data. msg);
          }
        },  "json");
         return  false;
      });
    });
相关文章
|
6月前
|
存储 移动开发 JavaScript
使用vuex记住当前页面页码信息,以便从详情页返回列表页时能还原到上一次页面
使用vuex记住当前页面页码信息,以便从详情页返回列表页时能还原到上一次页面
68 0
|
4月前
|
前端开发
Element UI 表格常用改造(表头添加注释、翻页连续序号【内含前端分页】)
Element UI 表格常用改造(表头添加注释、翻页连续序号【内含前端分页】)
193 0
|
6月前
|
缓存 JavaScript 前端开发
vue + element Table的数据多选,多页选择数据回显,分页记录保存选中的数据。
vue + element Table的数据多选,多页选择数据回显,分页记录保存选中的数据。
106 0
|
6月前
|
测试技术
【sgTransfer】自定义组件:带有翻页、页码、分页器的穿梭框组件,支持大批量数据的穿梭显示。
【sgTransfer】自定义组件:带有翻页、页码、分页器的穿梭框组件,支持大批量数据的穿梭显示。
|
前端开发
前端列表页+element-puls实现列表数据弹窗功能
前端列表页+element-puls实现列表数据弹窗功能
395 0
|
JavaScript 测试技术
Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计
Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计
113 0
|
JavaScript API
快速搞定,查询 + 表格,这种页面
快速搞定,查询 + 表格,这种页面
233 0
|
JavaScript
问题解决:使用JqGrid实现列表分页,翻页图标无法显示
问题解决:使用JqGrid实现列表分页,翻页图标无法显示
304 0
问题解决:使用JqGrid实现列表分页,翻页图标无法显示
|
JavaScript
分页之:下拉列表选择页码的回显功能
本文主要讲下拉列表选择页码的回显功能
295 0
|
前端开发
bootstrap列表页展示合并单元格
bootstrap列表页展示合并单元格
bootstrap列表页展示合并单元格