ui树形组建的渲染 tag菜单初始化展现控制 (树形)
2017-04-17 15:19
155 查看
//将数据表中的数据显示成树形结构
select * from t_b_area t start with t.source_type = 1 connect by t.parent_id = prior t.id。
//树形结构的实体,用到内部类
/**
*
*/
package com.ces.zwww.entity;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.ces.xarch.core.entity.LongIDEntity;
@Entity
@Table(name = "T_B_AREA")
public class Area extends LongIDEntity {
/** serialVersionUID(long):. */
private static final long serialVersionUID = -5967350210592855795L;
private String name;
private String mask;
private String remark;
private String address;
@Column(name="business_ip")
private String businessIp;
@Column(name="source_type")
private String sourceType;
@Column(name="parent_name")
private String parentName;
@Column(name="parent_id")
private Long parentId;
@Column(name="start_ip")
private String startIp;
@Column(name="end_ip")
private String endIp;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMask() {
return mask;
}
public void setMask(String mask) {
this.mask = mask;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBusinessIp() {
return businessIp;
}
public void setBusinessIp(String businessIp) {
this.businessIp = businessIp;
}
public String getSourceType() {
return sourceType;
}
public void setSourceType(String sourceType) {
this.sourceType = sourceType;
}
public String getParentName() {
return parentName;
}
public void setParentName(String parentName) {
this.parentName = parentName;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getStartIp() {
return startIp;
}
public void setStartIp(String startIp) {
this.startIp = startIp;
}
public String getEndIp() {
return endIp;
}
public void setEndIp(String endIp) {
this.endIp = endIp;
}
public class Tree {
private Long id;
private String name;
private String type;
private String mask;
private String busip;
private List<Tree> children;
public Tree(){
}
public Tree(Long id, String name, String type, String mask, String busip){
this.id = id;
this.name = name;
this.type = type;
this.mask = mask;
this.busip = busip;
this.children = new ArrayList<Area.Tree>();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMask() {
return mask;
}
public void setMask(String mask) {
this.mask = mask;
}
public String getBusip() {
return busip;
}
public void setBusip(String busip) {
this.busip = busip;
4000
}
public List<Area.Tree> getChildren() {
return children;
}
public void setChildren(List<Area.Tree> children) {
this.children = children;
}
public void addChildren(Area.Tree tree) {
children.add(tree);
}
}
}
public List<Area.Tree> findByTree(){
List<Area.Tree> trees = new ArrayList<Area.Tree>();
List<Area> results = getDao().findByTree();
for (Area area : results) {
Area.Tree node = null;
if("1".equals(area.getSourceType())){
node = area.new Tree(area.getId(), area.getName(), area.getSourceType(), area.getMask(), area.getBusinessIp());
trees.add(node);
}else if("2".equals(area.getSourceType())){
node = getTreeNode(trees);
node.addChildren(area.new Tree(area.getId(), area.getName(), area.getSourceType(), area.getMask(), area.getBusinessIp()));
}else if("3".equals(area.getSourceType())){
node = getTreeNode(getTreeNode(trees).getChildren());
node.addChildren(area.new Tree(area.getId(), area.getName(), area.getSourceType(), area.getMask(), area.getBusinessIp()));
}
}
return trees;
}
<%
String data = IOUtil.ajaxContent(pageContext.getAttribute("basePath")+"/area!tree.json?parentId=0");
pageContext.setAttribute("ajaxdata", data);
%>
<!-- 左侧导航栏 -->
<uitag-core:sidebar collapse="false">
<uitag-core-sidebar:navitems>
<uitag-core-sidebar:navitem icon="fa-desktop" dropdown="true" title="资源分类" current="open" root="true">
<system:auth resKey="zwww.zygl.wlsb">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="网络设备" url="wlsb/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree1" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.aqsb">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="安全设备" url="aqsb/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree2" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.fwcc">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="服务器及存储" url="fwqjcc/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree3" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.jfjg">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="机房机柜" url="jfjg/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree4" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.gxll">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="光纤链路" url="gxll/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree5" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.yhjd">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="用户节点" url="yhjd/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree6" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.gcs">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="工程师" url="gcs/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree7" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
</uitag-core-sidebar:navitem>
</uitag-core-sidebar:navitems>
</uitag-core:sidebar>
//传给url值之后进一步加入参数信息,让iframe加载url+parram
function onTreeNodeClick(event,treeid,node,flag){
var param = "?param=";
switch(node.type){
case "1":param += "{Q_EQ_area:'"+node.name+"'}";break;
case "2":param += "{Q_EQ_center:'"+node.name+"'}";break;
case "3":param += "{Q_EQ_street:'"+node.name+"'}";break;
default:param += "${param.param}";break;
}
$("#ListFrame").attr("src",url+param);
}11111111111111111111111111
//<system:auth resKey="zwww.zygl.yhjd">
//<uitag-core-sidebar:navitem
//icon="fa-caret-right"dropdown="true" tree="true"
//title="用户节点" url="yhjd/list.jsp"
//onclick="onSidebarClick(this)">
//<cui:tree //id="tree6"data="treedata" //onClick="onTreeNodeClick">//</cui:tree></uitag-core-//sidebar:navitem>
//</system:auth>
function onSidebarClick($this){//点击时将此菜单的url赋值
type = $this.title;
url = $($this).attr("url");
}
<script type="text/javascript">
var url,rowdata = {};
var type = '${param.type}';//来自于layout一级大菜单
var area = '${param.area}';
var treedata = [{'id':'0','name':'全市','open':true,'children':eval('(${ajaxdata})')}];
</script>
//来自于layout一级大菜单,点击之后进入这个大类小的页面菜单
<!-- // modify by chanlong on 2014-12-01 09:56 -->
<layout:panel floats="left" width="auto">
<a href="${ctx}/views/zwww/zygl/index.jsp?type=网络设备&area=全市" class="navs-link"><span class="menus menu02"> </span></a>
</layout:panel>
//要跳转后的页面
<script type="text/javascript">
var postData = {'Q_EQ_devcType':'wlsb'};
if("${param.param}"){
$.extend(postData, eval("(${param.param})"));//在这里将所有参数组合成json对,以待小项菜单的跳转页面//后的参数使用
}
</script>
//这里由于我们grid的查询,是用postData作为参数的所以这里组装成这样,这样只要重新调用search就上述菜单性的参数全部搞定
function search1() {
var nameip = $('#nameip').val();
var sblx = $('#sblx').combobox( "getValues" ).toString();
var sbzt = $("#sbzt").radiolist("getValue");
if (nameip != "") {
postData['Q_LIKE_ip'] = nameip;
}
if (sblx != "") {
postData['Q_LIKE_resType'] = sblx;
}
if (sbzt != "all") {
postData['Q_LIKE_status'] = sbzt;
}else{//modify by 包健敏 选择全部的时候需要去掉该查询项
delete postData['Q_LIKE_status'];
}
$('#list1').grid('option', 'postData', postData);
$('#list1').grid('reload');
}
//菜单初始化展现控制
<script type="text/javascript">
$(function(){
clickSidebar();
});
// 根据参数自动触发左侧的树节点的点击事件
function clickSidebar(){
if(type){
$("ul.submenu li a[title='"+type+"']").click();//把当前菜单中属于上级菜中,中符合标题为title的菜单的点击事件激发
//function onSidebarClick($this){//点击时将此菜单的url赋值
// type = $this.title;
// url = $($this).attr("url");
// }
}
if(area){
$("ul.submenu li a[title='"+type+"'] ~ ul.submenu").find("a[title='"+area+"']").click();//先找到匹配的当前的一级菜单,再在此基础上匹配下级菜单中标题符合参数的,激发他的点击事件
//function onTreeNodeClick(event,treeid,node,flag){
//var param = "?param=";
//switch(node.type){
//case "1":param
//+= "{Q_EQ_area:'"+node.name+"'}";break;
//case "2":param += "{Q_EQ_center:'"+node.name+"'}";break;
//case "3":param += "{Q_EQ_street:'"+node.name+"'}";break;
//default:param += "${param.param}";break;
//}
//$("#ListFrame").attr("src",url+param);
//}
//}
//}
</script>
select * from t_b_area t start with t.source_type = 1 connect by t.parent_id = prior t.id。
//树形结构的实体,用到内部类
/**
*
*/
package com.ces.zwww.entity;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.ces.xarch.core.entity.LongIDEntity;
@Entity
@Table(name = "T_B_AREA")
public class Area extends LongIDEntity {
/** serialVersionUID(long):. */
private static final long serialVersionUID = -5967350210592855795L;
private String name;
private String mask;
private String remark;
private String address;
@Column(name="business_ip")
private String businessIp;
@Column(name="source_type")
private String sourceType;
@Column(name="parent_name")
private String parentName;
@Column(name="parent_id")
private Long parentId;
@Column(name="start_ip")
private String startIp;
@Column(name="end_ip")
private String endIp;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMask() {
return mask;
}
public void setMask(String mask) {
this.mask = mask;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBusinessIp() {
return businessIp;
}
public void setBusinessIp(String businessIp) {
this.businessIp = businessIp;
}
public String getSourceType() {
return sourceType;
}
public void setSourceType(String sourceType) {
this.sourceType = sourceType;
}
public String getParentName() {
return parentName;
}
public void setParentName(String parentName) {
this.parentName = parentName;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getStartIp() {
return startIp;
}
public void setStartIp(String startIp) {
this.startIp = startIp;
}
public String getEndIp() {
return endIp;
}
public void setEndIp(String endIp) {
this.endIp = endIp;
}
public class Tree {
private Long id;
private String name;
private String type;
private String mask;
private String busip;
private List<Tree> children;
public Tree(){
}
public Tree(Long id, String name, String type, String mask, String busip){
this.id = id;
this.name = name;
this.type = type;
this.mask = mask;
this.busip = busip;
this.children = new ArrayList<Area.Tree>();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMask() {
return mask;
}
public void setMask(String mask) {
this.mask = mask;
}
public String getBusip() {
return busip;
}
public void setBusip(String busip) {
this.busip = busip;
4000
}
public List<Area.Tree> getChildren() {
return children;
}
public void setChildren(List<Area.Tree> children) {
this.children = children;
}
public void addChildren(Area.Tree tree) {
children.add(tree);
}
}
}
public List<Area.Tree> findByTree(){
List<Area.Tree> trees = new ArrayList<Area.Tree>();
List<Area> results = getDao().findByTree();
for (Area area : results) {
Area.Tree node = null;
if("1".equals(area.getSourceType())){
node = area.new Tree(area.getId(), area.getName(), area.getSourceType(), area.getMask(), area.getBusinessIp());
trees.add(node);
}else if("2".equals(area.getSourceType())){
node = getTreeNode(trees);
node.addChildren(area.new Tree(area.getId(), area.getName(), area.getSourceType(), area.getMask(), area.getBusinessIp()));
}else if("3".equals(area.getSourceType())){
node = getTreeNode(getTreeNode(trees).getChildren());
node.addChildren(area.new Tree(area.getId(), area.getName(), area.getSourceType(), area.getMask(), area.getBusinessIp()));
}
}
return trees;
}
<%
String data = IOUtil.ajaxContent(pageContext.getAttribute("basePath")+"/area!tree.json?parentId=0");
pageContext.setAttribute("ajaxdata", data);
%>
<!-- 左侧导航栏 -->
<uitag-core:sidebar collapse="false">
<uitag-core-sidebar:navitems>
<uitag-core-sidebar:navitem icon="fa-desktop" dropdown="true" title="资源分类" current="open" root="true">
<system:auth resKey="zwww.zygl.wlsb">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="网络设备" url="wlsb/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree1" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.aqsb">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="安全设备" url="aqsb/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree2" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.fwcc">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="服务器及存储" url="fwqjcc/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree3" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.jfjg">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="机房机柜" url="jfjg/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree4" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.gxll">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="光纤链路" url="gxll/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree5" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.yhjd">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="用户节点" url="yhjd/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree6" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
<system:auth resKey="zwww.zygl.gcs">
<uitag-core-sidebar:navitem icon="fa-caret-right" dropdown="true" tree="true" title="工程师" url="gcs/list.jsp" onclick="onSidebarClick(this)">
<cui:tree id="tree7" data="treedata" onClick="onTreeNodeClick"></cui:tree>
</uitag-core-sidebar:navitem>
</system:auth>
</uitag-core-sidebar:navitem>
</uitag-core-sidebar:navitems>
</uitag-core:sidebar>
//传给url值之后进一步加入参数信息,让iframe加载url+parram
function onTreeNodeClick(event,treeid,node,flag){
var param = "?param=";
switch(node.type){
case "1":param += "{Q_EQ_area:'"+node.name+"'}";break;
case "2":param += "{Q_EQ_center:'"+node.name+"'}";break;
case "3":param += "{Q_EQ_street:'"+node.name+"'}";break;
default:param += "${param.param}";break;
}
$("#ListFrame").attr("src",url+param);
}11111111111111111111111111
//<system:auth resKey="zwww.zygl.yhjd">
//<uitag-core-sidebar:navitem
//icon="fa-caret-right"dropdown="true" tree="true"
//title="用户节点" url="yhjd/list.jsp"
//onclick="onSidebarClick(this)">
//<cui:tree //id="tree6"data="treedata" //onClick="onTreeNodeClick">//</cui:tree></uitag-core-//sidebar:navitem>
//</system:auth>
function onSidebarClick($this){//点击时将此菜单的url赋值
type = $this.title;
url = $($this).attr("url");
}
<script type="text/javascript">
var url,rowdata = {};
var type = '${param.type}';//来自于layout一级大菜单
var area = '${param.area}';
var treedata = [{'id':'0','name':'全市','open':true,'children':eval('(${ajaxdata})')}];
</script>
//来自于layout一级大菜单,点击之后进入这个大类小的页面菜单
<!-- // modify by chanlong on 2014-12-01 09:56 -->
<layout:panel floats="left" width="auto">
<a href="${ctx}/views/zwww/zygl/index.jsp?type=网络设备&area=全市" class="navs-link"><span class="menus menu02"> </span></a>
</layout:panel>
//要跳转后的页面
<script type="text/javascript">
var postData = {'Q_EQ_devcType':'wlsb'};
if("${param.param}"){
$.extend(postData, eval("(${param.param})"));//在这里将所有参数组合成json对,以待小项菜单的跳转页面//后的参数使用
}
</script>
//这里由于我们grid的查询,是用postData作为参数的所以这里组装成这样,这样只要重新调用search就上述菜单性的参数全部搞定
function search1() {
var nameip = $('#nameip').val();
var sblx = $('#sblx').combobox( "getValues" ).toString();
var sbzt = $("#sbzt").radiolist("getValue");
if (nameip != "") {
postData['Q_LIKE_ip'] = nameip;
}
if (sblx != "") {
postData['Q_LIKE_resType'] = sblx;
}
if (sbzt != "all") {
postData['Q_LIKE_status'] = sbzt;
}else{//modify by 包健敏 选择全部的时候需要去掉该查询项
delete postData['Q_LIKE_status'];
}
$('#list1').grid('option', 'postData', postData);
$('#list1').grid('reload');
}
//菜单初始化展现控制
<script type="text/javascript">
$(function(){
clickSidebar();
});
// 根据参数自动触发左侧的树节点的点击事件
function clickSidebar(){
if(type){
$("ul.submenu li a[title='"+type+"']").click();//把当前菜单中属于上级菜中,中符合标题为title的菜单的点击事件激发
//function onSidebarClick($this){//点击时将此菜单的url赋值
// type = $this.title;
// url = $($this).attr("url");
// }
}
if(area){
$("ul.submenu li a[title='"+type+"'] ~ ul.submenu").find("a[title='"+area+"']").click();//先找到匹配的当前的一级菜单,再在此基础上匹配下级菜单中标题符合参数的,激发他的点击事件
//function onTreeNodeClick(event,treeid,node,flag){
//var param = "?param=";
//switch(node.type){
//case "1":param
//+= "{Q_EQ_area:'"+node.name+"'}";break;
//case "2":param += "{Q_EQ_center:'"+node.name+"'}";break;
//case "3":param += "{Q_EQ_street:'"+node.name+"'}";break;
//default:param += "${param.param}";break;
//}
//$("#ListFrame").attr("src",url+param);
//}
//}
//}
</script>
相关文章推荐
- vue.js与element-ui实现菜单树形结构的解决方法
- 虚幻4 添加变量控制UI的渲染,详细教程。
- 动态树形多选菜单——ztree初始化加载和延迟加载
- 分享一个VUE Element-UI 的多级菜单动态渲染的组件
- Android应用程序UI硬件加速渲染环境初始化过程分析
- operamasks-ui2.0 +MVC4.0+EF5.0实战之二 功能菜单及树形控件(Tree)
- jquery easy ui 1.3.4 Tree树形菜单(9)
- Ztree树形菜单实现动态初始化、添加、删除、修改节点
- Android应用程序UI硬件加速渲染环境初始化过程分析
- Easy UI的树形菜单的异步加载
- js树形菜单(梯形,没有+号)-主要是通过 display 控制
- 树形图(菜单)构建组建dhtmlXTree
- Android应用程序UI硬件加速渲染环境初始化过程分析
- Jquery Easy-UI 树形菜单的运用
- 树形菜单tag框架 非树形的点击事件
- 3D UI 交互和 摄像机渲染控制
- .NET20 一种简单的窗口控件UI状态控制方法
- DirectUI中模态对话框和菜单的原理(自己控制整个Windows消息循环。或者,用菜单模拟窗体打开时用SetCapture取得控制权,一旦窗体收到WM_CAPTURECHANGED消息就把窗体退出)
- 用MXML里的tag属性来初始化继承成员
- 给Asp.Net Forums的后台管理菜单做一个树形外衣