layui表格数据变更的一种处理方式


当前第2页 返回上一页

1

2

3

4

// id集合

tablePlug.del('demo', [1,2,3,4]);

// 对象数组

tablePlug.del('demo', [{id: 1, name: 'name1'}, {id:2}, {id:4}]);

根据得到哪种数据比较方便就用哪种形式,可以参考测试页面的批量删除的处理方式

7.jpg四、move

这个处理基本跟update差不多,将数据在cache中调整位置,然后调用一下组件内部的renderData的方法让他重新渲染出来就好

8.jpg然后为了使用方便衍生出来一个上移跟下移的方法

9.jpg

效果

1.gif理论上利用一些拖拽事件或者其他的插件在事件中调用一下tablePlug.move('demo', form, to);就能够实现顺序的任意改变了

限制:注意!这个只是针对数据移动,不会有单条数据记录的变动,如果原始的数据里面有点击了排序,那么移动之后默认是会去掉这个排序的状态了的,因为移动之后很可能就不能满足当前的排序规则了,所以建议在使用移动的时候不要跟sort搭配,如果有sort而且所谓的移动是会发起请求改变数据的,那么这个建议还是使用请求接口得到两个新的数据然后用update去更新他们的位置。

五、renderTotal

在记录更新之后,如果存在统计行有需要统计的列,那么值一般也要跟着变,另外一个更加重要的作用就是可以自定义统计规则,而不是自带的求和,可以自定一定计算的函数,或者可以直接类似templet一样的去自定义返回的内容,包括异步的去读取想要显示的数据。

代码大概如下:

10.jpg从实现代码可以看出就是给cols的字段配置新增一个totalFormat的设置,可以设置一个规则如果不设置的话就是sum(目前也只是添加了sum,其他的规则后面会加入或者自己加入,比如平均。

最大最小不过个人觉得主要意义是可以自定义方法,这个才是实用常用的),也可以设置一个方法,如果不是异步的可以直接把结果返回,如果是需要异步的那么也可以在得到最终想要的结果的时候执行:

1

tablePlug.renderTotal(tableId, field, res);

比如下面的:

11.jpg平时实用的话不是都要自己去调用的,在插件内部已经在renderDone回调里面会去执行他了:

12.jpg参数也是比较自由,不同的组合会有不同的效果,

1

2

3

4

5

6

// 触发更新某个表格的所有列的统计数据

renderTotal(tableId);

// 触发更新某个表格的某个字段的数据

renderTotal(tableId, fieldName);

// 更新某个表格的某个字段的统计数据为value

renderTotal(tableId, fieldName, totalValue);

六、refresh

之前做过一个智能reload的修改,即在执行table.reload的时候会根据传过去的option来判断只是重新请求数据还是需要重载一下,个人觉得效果可以了。

不过对于有强迫症(有追求)的小伙伴来说,在一些场景下还是不够好,就是那些定时刷新的,表现就是一方面滚动条会回到top:0,left:0,还有其他的比如鼠标在操作分页组件的时候会觉得失去焦点,新增一个tablePlug.refresh来试一试能否满足要求。

先看效果:

2.gif事件背后做的事情:

13.jpg表格config:

14.jpg背后的实现思路

15.jpg

修改table的Class.prototype.pullData支持refresh模式

renderData的时候根据是否refresh去做一些细节的处理,还有一个限定就是返回的数据中关于总数应该是不变的,如果发生了改变,那么还是会renderData,会重新渲染page组件。

另外一个限制就是这种refresh的表格不建议再加什么按钮呀edit呀,因为它一直会在变,基本主要就是用来做一个单纯用来显示用的表格,比如一些经常变化的数据,访问人次,股票动态之类的。

使用:

1

2

3

4

5

6

// 启动表格demo的自动刷新功能,500毫秒一次

tablePlug.refresh('demo', 500);

// 取消表格demo的自动刷新

tablePlug.refresh('demo', false);

// 停止所有已开启自动刷新的表格的自动刷新

tablePlug.refresh(false);

更多layui框架知识请关注layui使用教程。

以上就是layui表格数据变更的一种处理方式的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

layui修改弹出层按钮颜色的方法

layui项目中使用函数layui.define的方法介绍

使用layui框架封装ajax模块的具体步骤

layui怎么表格中显示图片

layui不同版本在使用上的差异对比

layui监听多个radio事件的方法

layui表格动态显示变换

layui怎么隐藏表格行

layui框架属于前端还是后端

layui是什么?有什么作用?

更多相关阅读请进入《layui》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...