ztree二级菜单有查询条件,ztree一级菜单没有查询条件
2017-11-02 17:48
337 查看
今天碰到一个需求,ztree二级菜单有查询条件,ztree一级菜单没有查询条件,一般情况下查询条件都是先取一级菜单,再取二级菜单,但是一级菜单没有查询条件,会多取了一些不应该有的记录,所以这种情况下,只能实行倒推查询,先查二级菜单,得到的结果作为条件去查一级菜单,代码如下:
页面的代码如下:
这样就可以了
/*** * 获取模型树 * @param id * @return */ public List<ZTreeNode> getModelTree(String id, String userId) { StringBuffer sql1 = new StringBuffer(); sql1.append(" select ") .append(" a.tplakey,") .append(" a.tplaname,") .append(" a.tplacatecd,") .append(" a.DISPSEQ as seq") .append(" from PISS_tp_bas_inf as a") .append(" where a.tplastat = '1' and modeltype = 1"); sql1.append(" order by seq"); List<ZTreeNode> zTreeNodes1 = jdbcTemplate.query(sql1.toString(), new RowMapper<ZTreeNode>(){ public ZTreeNode mapRow(ResultSet rs, int ro 4000 wNum)throws SQLException{ String tplacatecd = rs.getString("tplacatecd"); Integer seq=rs.getInt("seq"); ZTreeNode zTreeNode1 = new ZTreeNode(); zTreeNode1.setId(rs.getString("tplakey")); zTreeNode1.setName(rs.getString("tplaname")); zTreeNode1.setIsParent(false); zTreeNode1.setParentId("F_"+(StringUtil.isNull(tplacatecd) ? "1":tplacatecd)); zTreeNode1.setIndex(seq); zTreeNode1.settId(tplacatecd); return zTreeNode1; } }); String ids = ""; if(!zTreeNodes1.isEmpty()){ for(int i=0; i<zTreeNodes1.size(); i++){ String tplacatecd = zTreeNodes1.get(i).gettId(); ids += "'"+tplacatecd+"'"+","; } ids = ids.substring(0, ids.length()-1); }else{ ids = "''"; } StringBuffer sql = new StringBuffer(); sql.append(" select ") .append(" b.id as flodid,") .append(" b.name as flodname,") .append(" b.p_folder_id as pid,") .append(" b.seq as seq") .append(" from PISS_tp_folder as b " + " where ISENABLE='1' and id in (" +ids+")"+ " order by seq"); List<ZTreeNode> zTreeNodes = jdbcTemplate.query(sql.toString(), new RowMapper<ZTreeNode>(){ public ZTreeNode mapRow(ResultSet rs, int rowNum) throws SQLException { String flodid = rs.getString("flodid"); String flodname = rs.getString("flodname"); Integer seq=rs.getInt("seq"); ZTreeNode zTreeNode=new ZTreeNode(); zTreeNode.setId("F_"+flodid); zTreeNode.setName(flodname); zTreeNode.setIsParent(true); zTreeNode.setParentId("F_"+rs.getString("pid")); zTreeNode.setIndex(seq); return zTreeNode; } }); List<ZTreeNode> nodes = new ArrayList<ZTreeNode>(); nodes.addAll(zTreeNodes); nodes.addAll(zTreeNodes1); return nodes; }
页面的代码如下:
var rule_tree = new FAPUI.Tree({ border:false, tbar:false, ttbar:false, filterAble:false, setting : { async : { enable: true,//设置 zTree 是否开启异步加载模式 url: path+'/emphasisCompanyController/getModelTree', autoParam : ['id']//异步加载时需要自动提交父节点属性的参数。[setting.async.enable = true 时生效] }, data:{ key: { name: "name" //设置树节点的name,节点参数name必须和它匹配 }, simpleData: { enable: true, //开启树的层级结构 idKey: "id", //设置树节点id,节点参数id必须与之匹配 节点数据中保存唯一标识的属性名称。[setting.data.simpleData.enable = true 时生效] pIdKey: "parentId" //设置pid,节电参数pid必须与之匹配 节点数据中保存其父节点唯一标识的属性名称。[setting.data.simpleData.enable = true 时生效] } }, check : { enable : true,//设置 zTree 的节点上是否显示 checkbox / radio chkStyle : "checkbox",//勾选框类型(checkbox 或 radio)[setting.check.enable = true 时生效] chkboxType: { "Y": "ps", "N": "ps" }//勾选 checkbox 对于父子节点的关联关系。 }, callback: { beforeCheck: function(treeId, treeNode) { return !isTreeCheckDisable; } } } });
这样就可以了
相关文章推荐
- 性能优化(一)Hibernate 利用缓存(一级、二级、查询)提高系统性能
- 分区表查询带分区条件,没有分区消除
- 动态建立右键菜单(一级/二级/三级) 响应鼠标单击事件及修改项的内容
- 查询一级商户下的所有的二级商户
- 实现二级菜单的一种方式--没有js 运行不了,主要看代码红色部分,只提供思路
- struts2的s:doubleselect 二级菜单没有值
- jQuery中,选中一级菜单,二级菜单自动出现的js代码
- 性能优化(一)Hibernate 利用缓存(一级、二级、查询)提高系统性能
- 一级横菜单二级坚菜单
- hibernate缓存机制详细分析(一级、二级、查询缓存,非常清晰明白)
- Hibernate开启了二级缓存后查询语句为什么没有被缓存
- php菜单一级,二级分类栏目的获得
- php mysql查询3级分类下对应的一级和二级分类
- JQuery中鼠标划过一级菜单,有二级菜单的就显示的处理
- Android学习笔记 一级二级菜单的使用
- hibernate缓存机制详细分析(一级、二级、查询缓存,非常清晰明白)
- 【荐】JS+CSS全力打造的一级横向滑动,二级竖向下拉综合菜单
- 一级横向滑动,二级竖向下拉综合菜单
- Hibernate中一级缓存、二级缓存及查询缓存的技术性总结
- 一级菜单 二级菜单的联动