bootstrapTable表格插件和jstree树形列表插件结合起来展示数据的界面也是经常看到的,如下所示。
image
image
以及在选择用户信息页面的时候,也需要根据条件进行筛选用户。
image
从界面的展示来看,结合两者确实可以带来很多便利,不过使用的时候,需要特别注意相关属性的处理,否则分页就会显示全部的记录了。
默认分页查询的代码如下所示。
image
默认属性列表的绑定操作代码如下所示。
//绑定左侧树形列表 //如果update为True,则重新更新缓存 function initJsTree(update) { var baseUrl = "/Apply/GetMyApplyJson?r=" + Math.random(); var url = update ? baseUrl + "&update=true" : baseUrl; bindJsTree("jstree_div", url); //树控件的变化事件处理 $('#jstree_div').on("changed.jstree", function (e, data) { var icon = data.node.icon; loadData(data.selected); }); }
默认情况下,通过树形列表触发的条件,或根据条件进行重新更新分页查询控件,如下所示。
//加载指定的对象数据 var clickId = ""; function loadData(id) { var condition = { CustomedCondition: id + '' }; //修改条件后需要重新刷新 $table.bootstrapTable('refresh', { url: queryUrl, query: condition, pageNumber:1}); clickId = id; }
不过如果仅仅是这样的处理,那么数据分页的时候,单击下一页则会没有记录刚才的树形列表条件,那么我们需要记录这个选择的树形条件,从而在更新条件的时候加入所需的条件,那么修改上面代码为以下代码。
//加载指定的对象数据 var clickId = ""; var where = {};//树列表条件 function loadData(id) { var condition = { CustomedCondition: id + '' }; where = {};//清空 where["CustomedCondition"] = id + '';//使用自定义条件 //修改条件后需要重新刷新 $table.bootstrapTable('refresh', { url: queryUrl, query: condition, pageNumber:1}); clickId = id; }
这样处理后,我们在bootstrapTable表格插件的条件处理部分代码里面,可以增加对这个条件的处理即可。
image
增加了红色方框里面的条件后,我们选择分页会得到正确的结果,这样也不会导致两个条件的不兼容,同时我们在切换条件的时候,恢复到第一页的页码。
image
而其中where里面存储的是我们属性列表的条件,以JSON方式存储起来的,可以根据需要添加自己所需的分页条件,如我的另一个选择用户界面的条件,可以如下代码所示。
image
例如流程模板的分页展示和条件分类树形展示如下所示。
image
例如其中一个菜单的树形列表以及数据展示界面如下所示。
image
作者:伍华聪_开发框架
链接:https://www.jianshu.com/p/572e9a4860b8
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦