`
fcdxdx
  • 浏览: 14740 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

tableTree4j的应用实例

阅读更多

最近在公司的一个项目中用到了tableTree4j这个树形列表的框架,于是在完成功能的前提下,我也研究了一下这个框架,下面我将写一个案例来介绍这个框架

首先我们需要写一个js,如下

 

var action="add";
var pubmenuid;
var pubrownum;
var gridTree;

//实时统计树形菜单

// 页面加载
function initdata(){
	var deviceType=document.getElementById("deviceType").value;
				var mapid =  document.getElementById("mapid").value;
				var system= document.getElementById("system").value;
					var deviceTypezt= document.getElementById("state").value;
					var tongji=setXAxis()
					$.post("historyCount!getAll.action",
						{'deviceType':deviceType,'emap.mapid':mapid,'tongji':tongji,'system':system,'deviceTypezt':deviceTypezt},
						function(data){//ajax获取到数据源
					//在指定的div中加载指定模版的报表
						createtable(data.list);
				},'json');

}
//判断那个被选为X轴
			function setXAxis(){
				var xx=document.getElementsByName("xAxisName");
				
				for(var i=0;i<xx.length;i++){
					if(xx[i].checked){
						return xx[i].value;
					}
				}
			}
// 创建模块显示部分
function createtable(data){//此处的data为list
	gridTree=new TableTree4J("gridTree","../module/");	
	gridTree.tableDesc="<table border=\"1\" class=\"GridView\" width=\"98%\" id=\"table1\""
		+"cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse: collapse\" "
		+" align=\"center\" bordercolordark=\"#C0C0C0\" bordercolorlight=\"#C0C0C0\" >";
	var headerDataList=new Array("部门名称","正常数量","故障数量","总数");	//设置列明
	var widthList=new Array("25%","10%","10%","15%");//每列的大小
	gridTree.setHeader(headerDataList,-1,widthList,true,"headerbg");//设置表头样式
	gridTree.gridHeaderColStyleArray =
			new Array("","centerClo","centerClo","centerClo");//设置每列样式
	gridTree.gridDataCloStyleArray =
			new Array("","centerClo","centerClo","centerClo");		
	if(data!=null)
	{
	for(var i=0;i<data.length;i++){
//		alert(data[i].mapName)
			//此处放置每行要显示的数据
		var dataList=new Array(data[i].mapName,
				"<a href='javascript:void(0)' style='color:green' onclick='detail("+data[i].deviceid+","+data[i].mapId+")'>"+data[i].normal+"</a>",//在列属相上添加链接
				"<a href='javascript:void(0)' style='color:red' onclick='detail2("+data[i].deviceid+","+data[i].mapId+")'>"+data[i].fault+"</a>",
								data[i].sum);
//								"&nbsp;&nbsp;<a href='javascript:void(0)'>"
//								+"<img style='border:0px' src='../../images/bj.gif'"
//								+" width='16' height='16'/></a>&nbsp;&nbsp;"+
//								"&nbsp;&nbsp;<a href='javascript:void(0)' onclick='delmenu()'><img style='border:0px' "
//								+"src='../../images/shanchu.gif' width='16' height='16' /></a>&nbsp;&nbsp;");
			var mid = data[i].mapId;
			var parentid = data[i].parentId;
			var mapid =  document.getElementById("mapid").value;
			//当数据中的自身的部门id等于搜索条件的部门id时,将此条数据的parentid设置为-1,否则报错
			if(mid==mapid){
				parentid=-1;
			}
		gridTree.addGirdNode(dataList,mid,parentid,null,i,null,null,"","",null,"plus","onlines_minus");
	}
	
	}
	gridTree.printTableTreeToElement("system,div");//树渲染的位置
}

 

 js通过ajax向一个action发送请求,然后数据以json字符串的形式返回给前台页面,然后在回调函数中执行createtable(data)方法此处传入的为list集合,之后遍历这个list将每个值取出然后将对应的属性放入到dataList集合中,此处传入的值必须有mid和parentid这两个属性的值,此处注意,当mid等于mapid的时候我们需要将此条数据的parentid设置为-1,否则js报错。printTableTreeToElement()方法就是树形表格需要渲染到的位置的id。

在jsp中大家可以执行一个onclick事件来执行这个方法。

注意的是,list的实体类必须包含id和parentid这个两个属性才可以。

1
0
分享到:
评论

相关推荐

    Web应用前端技术的探索与实践

    6.5.2.9.1 TABLETREE4J 121 6.5.2.9.2 JQuery TreeGrid 124 6.5.2.10 Combo扩展1-去除IE6下穿透层的bug 129 6.5.2.10.1 效果 130 6.5.2.11 Combo扩展2-新样式、可多选 131 6.5.2.11.1 效果 131 6.5.2.12 Combo扩展3-...

    treeTable树形

    - **JavaScript库**:许多前端框架如jQuery、React、Vue、Angular等都有对应的`treeTable`插件,如Element UI、Ant Design、Bootstrap Tree Table等,提供易于使用的API和丰富的样式选项。 - **CSS布局**:利用CSS...

    Android ORMLite框架入门使用实例Demo

    接着,在需要使用数据库的地方,获取DAO实例并执行操作: ```java import com.j256.ormlite.dao.CloseableIterator; import com.j256.ormlite.stmt.PreparedQuery; import com.j256.ormlite.stmt.Where; ...

    Python批量删除只保留最近几天table的代码实例

    ### Python批量删除只保留最近几天table的代码实例详解 #### 背景介绍 在数据库管理过程中,经常会遇到需要清理旧数据的情况,特别是在数据分析、日志处理等场景中,为了节省存储空间或优化查询性能,通常会定期...

    python学习笔记-excel用例输入.pdf

    4. **类方法(Class Method)**:在Python中,使用`@classmethod`装饰器定义的函数是类方法,它们可以不需实例化对象直接通过类调用。例如`CreateExcel.open_excel()`。 5. **数据处理**: - `get_nrows(table)`:...

    数据挖掘实验二1

    4. 对比不同算法,C4.5、SimpleLogistic和DecisionTable在本实验中表现较好,但具体应用时应根据数据特点选择合适算法。 5. 高准确率不一定意味着模型完美,还需考虑模型的复杂度、过拟合风险等因素。 在实际数据...

    JavaScript中闭包之浅析解读(必看篇)_.docx

    在这个例子中,`attachSearchBox`方法利用闭包保持对`cache`对象的引用,从而实现了对搜索框实例的缓存。 此外,闭包还能用于封装变量和函数,创建模块化的代码结构。下面是一个使用闭包封装的`person`对象示例: ...

    STL 源码剖析(侯捷先生译著)

    源码之前了无秘密,你将看到vector的实现、list的实现、heap的实现、deque的实现、RB-tree的实现、hash-table的实现、set/map 的实现;你将看到各种算法(排序、搜寻、排列组合、数据移动与复制…)的实现;你甚至将...

    java 表格树

    在Java编程领域,"表格树"(Treetable)是一种复合控件,它结合了表格(Table)和树形视图(Tree)的功能,能够同时展示数据的层次结构和线性列表。这种组件通常用于数据组织复杂且具有层级关系的情况,如文件系统、...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    2.Document Tree(文档树) "文档树"在前面第二章我们已经提到过,它是文档元素分级结构的形象表示。一个文档结构树包含根元素,根元素是最顶级的元素,(就是紧接着XML声明语句后的第一个元素)。看例子: ...

Global site tag (gtag.js) - Google Analytics