1.bootstraptable分页后搜索,想重置页码
首先,直接$("#").bootstrapTable('refresh')是不行的,这样只能刷新当前页数据;
方法一:直接destroy然后重新渲染;
方法二:先$("#").bootstrapTable("resetSearch")重置参数,然后$("#").bootstrapTable('refresh')刷新。
$("#").bootstrapTable的参数一共有
[ 'getOptions', 'getSelections', 'getAllSelections', 'getData', 'load', 'append', 'prepend', 'remove', 'removeAll', 'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId', 'getRowByUniqueId', 'showRow', 'hideRow', 'getHiddenRows', 'mergeCells', 'checkAll', 'uncheckAll', 'checkInvert', 'check', 'uncheck', 'checkBy', 'uncheckBy', 'refresh', 'resetView', 'resetWidth', 'destroy', 'showLoading', 'hideLoading', 'showColumn', 'hideColumn', 'getHiddenColumns', 'getVisibleColumns', 'showAllColumns', 'hideAllColumns', 'filterBy', 'scrollTo', 'getScrollPosition', 'selectPage', 'prevPage', 'nextPage', 'togglePagination', 'toggleView', 'refreshOptions', 'resetSearch', 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows', 'updateFormatText' ]
有时间的可以一一研究下。
2.layer弹层问题。
表现:错乱,样式和行为混乱。layer.msg在左侧弹窗了而非在页面中间,而且弹出后不消失,再次触发后可以消失了也在中间了但是别的组件也消失了。
原因:看到这种比较怪异的现象,一般就会有一个方向就是ID冲突。经过审查和查看layer源码,发现是id重复了,后经排查,是因为同一个页面出现了两个不同版本的layer,而原因就是有一处要使用layim通信功能,所有layim中包含了另一个版本的layer。
解决方法:(1)统一版本;(2)自己写一个方法,排重重复id。逻辑也很简单,如下:
1 (function loop(n) { 2 if($("#layui-layer"+layer.index)[0]) { 3 layer.index++; 4 loop(n+1); 5 } else { 6 return; 7 } 8 })(0);
就是用了上次说的批量打印的时候canvas画图片时异步加载导致被覆盖的解决方法。
而且,layim中index是从100000开始的,layer中是从0开始。这与加载顺序也有关系,比如,清缓存刷新时,由于先加载的是layer,后加载的layim,所有index是后者的,所以index没有问题,生成的id也就没有问题,(不过当前应用场景下,弹窗100000次窗口之后,如果不做排重,可能就会出现同样的现象,统一版本另当别论);普通刷新不清缓存,此时就由于加载缓存,所有加载的是前者的index,就出现了该问题。
而IE上又没有出现该问题,这就又上升到浏览器内核的问题了。