之前百度了很多关于题目相关的结果,结果都不大近人意。直到今天发现官方居然有解决办法,哎,好气啊~不多说了,直接上干货。
官方参考地址:https://gitee.com/sentsin/layui/pulls/23/files
可以看到,在layui原来的基础上,使用table.reload是无法替代旧的cols的:
所以,此处官方给出了一个修改办法:
修改 src/lay/modules/table.js下的Class.prototype.reload方法(可能有的版本是I.prototype.reload),增加:
if (options.cols && options.cols.constructor === Array) delete that.config.cols;
注意,此处的options在你的代码中到底是options还是e,而且我的版本还得写成如下的格式:
e.cols && e.cols.constructor === Array && delete i.config.cols,
所以具体的还得看你的layui版本,不过思路都是一样的。
从上面代码可以看出,增加的代码的意思无非就是多了一层判断:
以前reload的时候,只替换load中的内容,现在不仅替换了load,还增加了cols的内容替换。
好了,看一下我这边的总体代码要怎么使用(假设此处已经修改了table.js):
var active = { reload: function () { ...........//之前的取值就不展示了,此处假设只有一个显示列的条件搜索,如下图: var cols = $("#cols").val(); var table_json = { 'id':"序号", 'title' : '主题', 'priority' : '优先级', 'status' : '状态', 'system' : '系统别', 'taskNo' : '作业编号', 'questionType' : '问题类型', 'applier' : '申请人工号', 'trueName' : '申请人姓名', 'createDateTime' : '申请时间', 'handler' : '处理人工号', 'handlerName' : '处理人姓名', 'handDateTime' : '上一次处理时间', 'updater' : '更新人工号', 'updaterName' : '更新人姓名', 'updaterDateTime' : '更新日期' }; //每次搜索就得清空table_col和重置array_col table_col = []; array_col = [{checkbox: true, fixed: true}, {title: '编辑&#