`
laitaogood
  • 浏览: 107787 次
  • 性别: Icon_minigender_1
  • 来自: 豫章郡→紫禁城
社区版块
存档分类
最新评论

使用dhtmlxtree时所遇到的问题及对应策略

阅读更多
小弟水平不高,所以一直努力中,请前辈们不吝赐教
----------------------------------------------------------------------

1. 在action中调用service类,并将xml文件写入对应的xml文件夹

String path = this.servlet.getServletContext().getRealPath(“/”)+”xml”;

然后将这个path传递过去,作为生成xml文件的一个参数,指出其应当存储的位置。
OutputFormat outFmt = new OutputFormat(“		”,true);
XMLWriter xmlWriter = new XMLWriter(new FileWriter(path+”\\tee.xml”),outFmt);


2. 在登录的时候需要对xml文件夹进行遍历,查看是否有以用户名命名的xml文件是否存在,如果存在则解析该xml文件,并将其显示为一棵动态树。如果没有则调用service方法获得该用户的功能权限或其他的权限,将其生成为一个xml文件,并保存在对应的xml文件夹。
如果改动了用户的权限,则也要更改对应的xml文件,并将其重新保存。

File dir = new File(path);
File[] files = dir.listFiles();
//然后遍历这个目录,找到以某个用户名命名的xml文件

3. 困扰2天的dhtmlxtree树图标不显示的问题终于搞定了。

由于系统结构如下
doc 写道

---WebRoot
---codebase
---imgs
---privmanag
---inc
---treemenu.jsp


Treemenu.jsp页面中的设置如下
<link rel="STYLESHEET" type="text/css" href="codebase/dhtmlxtree.css">
		<script src="codebase/dhtmlxcommon.js"></script>
		<script src="codebase/dhtmlxtree.js"></script>
		
	<script>
		tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
		//set the image's path
		//默认使用dhtmlxtree的winstyle风格
		tree.setImagePath("imgs/");
		...

4. 在给包含富选框的树进行操作的时候,需要使用什么样的dhtmlxtree函数以及如何将已经被checked的节点的ID传递出来

首先在javascript里使用dhtmlxtree的函数来获取一个选中节点的ID的数组。
// 获得所有选中的节点的id
tree.getAllChecked();
//获得所有选中的那个节点的分支
tree.getAllCheckedBranches();

然后我们解决怎么将这个数组变量传递出来,提供给Action类来使用呢?
 
找来找去,发现是不可能的,因为javascript是运行在客户端的,而servlet是运行在服务端的,是无法进行通信的,除非用到AJAX技术进行异步的通信,但是我又不会。还有2种手段能达到相同的效果,一个是使用一个隐藏域,将JAVASCRIPT的变量赋给它,然后提交,在另一个jsp页面里使用request.getParameter();来获得;另一个是将获得的变量作为参数通过URL的形式传递出去。结合实际项目的情况,我选择了后者,唯一可能麻烦的是,不知道这个参数的长度是多少?如果太多了就麻烦了。
function getIdArray()
			{
				var aa = new Array();
				var ss = openURL();
				aa = ss.split(",");
				//alert(aa[0]);
				//alert(aa.length-1);
				alert(aa);
				var sss="****.do?";
				for(var i=0;i<aa.length-1;i++)
				{
					//var str = parseInt(aa[i]);
					var str = aa[i];
					if(i==(aa.length-2))
					{
						sss = sss+"str"+i+"="+str;
					}
					else
					{
						alert(str);
						sss = sss+"str"+i+"="+str+"&";
					}
					
					alert(sss);
				}
				alert(sss);
				//alert(aa);
			}

最后就能得到了正确的URL了,然后调用对应的action处理类来进行处理就可以了。
【扩充点是可以同时把共有多少选项的个数传递出去。】
这只是我的一些做项目时的遇到的问题,请前辈们给出一些更好的解决方案,谢谢!!!


2
1
分享到:
评论
3 楼 laitaogood 2008-08-03  
引用
hailxo 前天 删除
你好,请问有没有碰到过个别图标不显示的情况——我的树里面前一到两个菜单项的图标不显示还请不吝赐教

请您参考《使用dhtmlxtree时所遇到的问题及对应策略》第三点
2 楼 hailxo 2008-07-31  
你好,请问有没有碰到过个别图标不显示的情况——我的树里面前一到两个菜单项的图标不显示 还请不吝赐教
1 楼 laitaogood 2008-01-30  
更改一下,发现一个dhtmlxtree的小BUG
描述如下:如果是点父节点的话,除了会生成一个选中节点的ID数组,还会在最后生成一个","号,所以说如果直接转为javascript里的数组的话,可能最后传过去的是""了,而点击子节点生成的ID列表则不会出现这样的情况.
以下是改进的代码
function getIdArray()
	{
		var aa = new Array();
		var bb = new Array();
		var ss = openURL();
		var sss = null;
		aa = ss.split(",");
		//alert(aa[0]);
		//alert(aa.length-1);
		//alert(aa);
		//如果选中的节点所组成的数组的最后一项为空
		//这是dhtmlxtree的一个小BUG,如果是点子节点,则返回的是没有","的
		//如果是点父节点,则返回的是没有","号的
		if(aa[aa.length-1] == "")
		{
			//alert("The last is null");
			for(var j=0;j<aa.length-1;j++)
			{
				bb[j]=aa[j];
			}
			//alert(bb);
					
			if(aa.length == 1)
			{
				alert("请选择要授权的选项");
				return false;
			}
			sss="****.do?count="+(bb.length);
			for(var i=0;i<bb.length;i++)
			{
				//var str = parseInt(aa[i]);
				var str = bb[i];
				if(i==(bb.length-1))
				{
					sss = sss+"&str"+i+"="+str;
				}
				else
				{
							//alert(str);
				sss = sss+"&str"+i+"="+str;
				}
				//alert(sss);
			}
		}
		else
		{
			if(aa.length == 1)
			{
				alert("请选择要授权的选项");
				return false;
			}
			sss="****.do?count="+(aa.length);
			for(var i=0;i<aa.length;i++)
			{
				//var str = parseInt(aa[i]);
				var str = aa[i];
				if(i==(aa.length-1))
				{
					sss = sss+"&str"+i+"="+str;
				}
				else
				{
					//alert(str);
					sss = sss+"&str"+i+"="+str;
				}
			//alert(sss);
			}
		}
		//alert(sss);
		window.location = sss;
		//alert(aa);
	}


这下不会出错了,呵呵

相关推荐

    dhtmlXtree树 右dhtmlXtree键菜单

    因此,理解和掌握dhtmlXtree的API及事件机制至关重要。 总的来说,dhtmlXtree的右键菜单功能极大地扩展了其交互性,使得用户能够更加自然地与树形数据进行交互。通过定制菜单项和处理用户操作,你可以构建出符合...

    dhtmlxtree

    **dhtmlxtree详解与JSON应用** `dhtmlxtree` 是一个基于JavaScript的富客户端树形组件,它允许在Web应用程序中创建交互式的、可扩展的树状视图。这个组件由DHTMLX Suite提供,它是一个广泛使用的JavaScript UI库,...

    DHtmlXTree中文使用手册2.0版本

    【DHTMLXTree中文使用手册2.0版本】 在DHTMLX组件库中,DHTMLXTree是一款基于JavaScript的DHTML组件,它主要用于构建富交互式的Web界面,特别是在Ajax技术的支持下,能实现动态更新和高效的数据展示。DHTMLXTree...

    dhtmlxTree

    **dhtmlxTree** 是一个强大的JavaScript库,用于在Web应用程序中创建交互式的树形视图。这个控件允许开发者构建可自定义的、功能丰富的树结构,适用于数据的分类和展示,例如导航菜单、文件系统模拟或者组织结构图。...

    专业版dhtmlxtree下载

    dhtmlxtree是一款基于JavaScript的开源树形菜单控件,专为Web开发人员设计,用于在网页中构建交互式、可扩展的树状结构。它提供了丰富的功能和自定义选项,使得用户界面更加直观和易于操作。这款专业版dhtmlxtree在...

    功能超级强大的树dhtmlXTree

    3. **错误处理**: 在事件处理中加入异常捕获,确保程序在遇到问题时能够优雅地处理。 4. **样式统一**: 根据项目风格,定制dhtmlXTree的样式,使其与其他UI组件协调一致。 5. **测试与调试**: 在多种浏览器和设备...

    dhtmlXTree1.6

    1. **动态加载**:dhtmlXTree1.6支持异步加载,即节点可以在用户展开时按需加载,降低了页面初次加载时的数据量,提高了用户体验。 2. **自定义图标**:每个节点可以有自定义的打开/关闭图标,以及与之关联的叶子...

    dhtmlxTree树形控件JavaScript

    对于大数据量的树,可以使用分页和延迟加载策略来提高性能。此外,可以利用缓存机制来减少不必要的网络请求。 总之,dhtmlxTree是构建Web应用程序中交互式树状视图的强大工具,它提供了全面的功能集,让开发者能够...

    dhtmlxTree 2.1

    同时,官方可能提供技术支持和社区论坛,以便解决开发过程中遇到的问题。 总的来说,dhtmlxTree 2.1 是一个强大的工具,适用于那些需要在网页上呈现分层数据的开发者。通过其丰富的功能和高度定制性,可以帮助你...

    dhtmlxtree实例

    例如,在一个项目管理应用中,可以使用dhtmlxtree展示任务的层级关系,通过拖放调整任务顺序,通过复选框选择多个任务,通过右键菜单进行任务的增删改操作。 **六、API与配置选项** dhtmlxtree提供了丰富的API接口...

    基于dhtmlxtree构建动态维护树

    在构建dhtmlxtree时,我们需要考虑以下几个核心知识点: 1. **数据库设计**: 在上述示例中,数据库表`GEC_ZYTJ`用于存储树的节点信息。表结构包含三个字段:`ID`(主键,通常为唯一标识符)、`PARENTID`(父节点...

    JS树:dhtmlxTree

    1. **可扩展性**:dhtmlxTree支持动态加载,可以根据需要仅加载部分节点,减少初次加载时的数据量,提高用户体验。 2. **自定义外观**:该组件提供多种皮肤,可以适应不同的设计风格,同时支持自定义CSS,满足个性...

    dhtmlxtree例子

    method=findCommonLawById")`这个方法配置了当点击节点时自动加载下级节点的URL,通过拼接节点ID来获取对应的数据。 5. **首次加载数据**: `loadXML("&lt;%=basePath%&gt;jsp/cmccht/processdata/contractBaseInfo/...

    Dhtmlxtree的例子

    这些特性使得Dhtmlxtree成为构建复杂Web应用界面的理想选择,尤其是在需要展示层次结构数据时。 在实际应用中,开发者可以根据需求对Dhtmlxtree进行深度定制,如调整节点的展开和折叠动画效果、添加右键菜单、实现...

    dhtmlxtree的一个实用demo

    这篇文章很可能是对dhtmlxtree进行详细介绍,包括它的安装、配置、基本API的使用,以及如何将它集成到项目中,解决实际问题的案例分析。通过阅读这篇博客,读者可以学习如何创建和定制dhtmlxtree实例,理解其核心...

    第三方树控件dhtmlxTree 3.6

    **第三方树控件dhtmlxTree 3.6详解** dhtmlxTree是一款流行的JavaScript库,用于在Web应用中创建交互式的树形结构。版本3.6提供了丰富的功能和优化,使得开发人员能够轻松地在网页上实现动态的、可自定义的树形视图...

Global site tag (gtag.js) - Google Analytics