以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  [转载]附带选择功能的树的实现:XMLSelTree(V1.0)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=5346)


--  作者:admin
--  发布时间:2/6/2004 10:12:00 PM

--  [转载]附带选择功能的树的实现:XMLSelTree(V1.0)
转载自:http://www.csdn.net/develop/article/19/19357.shtm

作  者:  moonpiazza (月下小生)  
主  题:  附带选择功能的树的实现:XMLSelTree(V1.0)

源码打包下载:http://bbs.xml.org.cn/demo/xmlseltree.rar

本地演示:http://bbs.xml.org.cn/demo/xmlseltree/

示例图:

此主题相关图片如下:
按此在新窗口浏览图片

一:功能简介:

客户端环境
IE5.x
IE6

无限级树结构
不限制,理论上为树的深度可以无限
数据加载:a.一次加载 b.动态加载 c. a+b
是否只显示树的一个枝节
是否自动展开枝节下第一个叶
是否每次重新加载子节点
节点图标有节点属性动态指定
当前节点图标改变,父系节点图标改变
当前节点高亮显示


选择节点所包含的数据蛹痋r
子集数据:选择节点数据数据子集时动态加载
子节点选择状态,自动跟随父节点的选择状态
当所有子节点全部选中,所有父系节点自动选中
当子节点有一个未选中,所有父系节点自动取消选中状态
当节点获得焦点,是否同时改变节点的选择状态
自由指定节点数据子集中,数据的分隔符

二:实现过程
感谢以下参考程序的作者:
MSDN: Grant Harris, Bryn Waibel
http://msdn.microsoft.com/library/shared/deeptree/htc/deeptree.htc
CSDN: ChinaOk
http://www.ChinaOk.net/***(现在访问不到了 :( )


关键方法:
1. 设定全局对象,获得当前节点
2. 使用xmldom动态加载节点数据(xml格式字符串)
3. 根据客户端IE版本不同,调用不同版本xsl文件 4. 使用xsl转化xml数据,获得节点相关属性
5. 依照节点层次结构,获得当前节点的父系节点与子系节点
6. 依照节点层次关系,显示为树状结构
7. 同步(异步)当前节点及其父系节点,子系节点的选择状态
三:使用说明:由于水平有限,有不足和需要改进的地方,请多多指点.

说明
1. 枝节点:有子节点的节点
2. 叶节点:没有有子节点的节点
3. 节点属性根据需要选择指定节点属性
4. 节点属性区分大小写,注意!


XML数据格式
<TreeNode  
Title="XML/SOAP" 节点标题(必须) 必须
Caption="XML/SOAP 描述" 节点描述 可选
Href="http://***.***.***.***/" 节点链接 可选
Target="frameName" 链接目标窗口名字 可选
NodeImgSrc="***/***.gif" 节点图标(一般为***0.gif,***1.gif,***2.gif,***3.gif),参看下面说明 可选
NodeXMLSrc="***/***.xml" 通过URL动态在加载子节点数据,可用程序动态生成xml数据(如***.asp) 可选
CheckData="moonpiazza" 子节点数据(选择数据),如:例子中的用户名 可选
CheckDataSrc="***/***.asp" 过URL动态在加载子节点数据(选择数据),获得字符串,如例子中的用户数据 可选


XMLSelTree 配置
1. 参看js文件(treeRes/XMLSelTree.js)中的注释
2. 全局变量:m_oConfig;
3. 函数:TreeConfig;


图标
1. 枝节点图标:treeRes/images/NodeImg1.gif(子节点展开前)
2. 枝节点图标:treeRes/images/NodeImg2.gif(子节点展开后)
3. 叶节点图标:treeRes/images/NodeImg0.gif
4. 叶节点图标:treeRes/images/NodeImg3.gif(点击后,可选)
5. 根据需要修改XMLSelTree.xsl(或XMLSelTreeforIE5.xsl)中的图标相对路径,默认图标

[此贴子已经被作者于2005-10-6 23:43:05编辑过]

--  作者:liberality
--  发布时间:3/24/2004 12:01:00 AM

--  
真的很不错啊! 怎么会没人来顶一下啊?我要下载来好好分析看看....谢谢提供!!!!


--  作者:xgy2000
--  发布时间:3/24/2004 3:23:00 PM

--  
good
--  作者:zzsww
--  发布时间:3/24/2004 5:34:00 PM

--  
不行,在mozilla和Opera下面无法显示出来。
但是微软的MSDN网站上的却可以正常显示,
说明代码本身还存在兼容问题。
--  作者:drinkpig
--  发布时间:3/31/2004 3:20:00 PM

--  
可以,我试过,没问题的
--  作者:yixixi
--  发布时间:4/3/2004 11:45:00 PM

--  
很不错
--  作者:hong0119
--  发布时间:4/7/2004 3:35:00 PM

--  
谢谢提供,顶
--  作者:diegor
--  发布时间:4/8/2004 3:58:00 PM

--  
支持一下
--  作者:101.key
--  发布时间:4/15/2004 7:20:00 PM

--  
wo 也顶一下
--  作者:Gavin.Lv.
--  发布时间:4/19/2004 12:24:00 PM

--  
UP
--  作者:peterchan
--  发布时间:5/9/2004 9:36:00 PM

--  
不顶不行哦!
--  作者:struggle
--  发布时间:6/15/2004 8:32:00 AM

--  
怎么例子都是用ASP写的啊?!郁闷中~~~
怎么就没有用JSP写这样的好例子呢 5555555555555~~~~~~
--  作者:hikaru
--  发布时间:6/24/2004 1:29:00 PM

--  
我靠。太棒了!我这几天刚好用到,还在改MSDN: Grant Harris, Bryn Waibel的那一个Deeptree,你就可以了,顶,Thanks
--  作者:hanhan27
--  发布时间:9/27/2004 4:41:00 PM

--  

--  作者:yumj
--  发布时间:10/1/2004 2:29:00 PM

--  
非常好的,有价值,谢了
--  作者:wanger_79
--  发布时间:1/26/2005 10:47:00 AM

--  
为什么把 var m_sXMLFile= "TreeNode.xml";// 主菜单项文件(可改为TreeNode.asp)
改为:var m_sXMLFile = "TreeNode.asp";
就显示不出来呢?
--  作者:ncnynl
--  发布时间:2/22/2005 12:24:00 PM

--  
测试IE/MYIE都没有问题

测试Mozilla/5.0 (Windows; U; Windows NT 5.0; zh-CN; rv:1.7.5) Gecko/20041124 Firefox/1.0 不能正常运行.


--  作者:zcypale
--  发布时间:3/21/2005 2:22:00 PM

--  
万分感激!~
--  作者:huangyunjun
--  发布时间:3/21/2005 7:37:00 PM

--  
真不错
--  作者:dos_119
--  发布时间:3/22/2005 9:22:00 AM

--  
谢谢
--  作者:feitianshu
--  发布时间:3/30/2005 6:03:00 PM

--  
谢谢
--  作者:chenchun
--  发布时间:3/31/2005 12:47:00 PM

--  
34
--  作者:alexxxl
--  发布时间:4/4/2005 8:12:00 PM

--  
UP一下
--  作者:littlefly
--  发布时间:4/5/2005 1:30:00 PM

--  
ding. good!
--  作者:landian
--  发布时间:4/9/2005 2:06:00 PM

--  
看不懂,我还是菜鸟
--  作者:tonyhan
--  发布时间:4/27/2005 12:33:00 AM

--  
dingyixia
--  作者:realiory
--  发布时间:5/11/2005 2:14:00 PM

--  
hao
--  作者:muleo
--  发布时间:5/14/2005 5:20:00 PM

--  
好东西!
--  作者:saker
--  发布时间:5/16/2005 2:42:00 PM

--  
代码中有bug。
--  作者:sunzhenbing
--  发布时间:5/18/2005 5:01:00 PM

--  
出了点小问题,不知道哪位可以帮我解决!
更新的时候,可能是查询字串那边有些问题

Set objField = objRoot.selectSingleNode("field[@id=' ' " &Request.Form.Key(x)& " ' ']/field_value") 对吗,这句???


--  作者:starsrain
--  发布时间:5/23/2005 2:34:00 PM

--  
UP
--  作者:我思故你在
--  发布时间:8/15/2005 8:52:00 PM

--  
有个问题,既然用在asp上,为什么不直接用微软的htc代码?
很想知道。。。
--  作者:angell8684
--  发布时间:9/8/2005 5:17:00 PM

--  
不错啊。。
--  作者:bias
--  发布时间:9/19/2005 2:02:00 PM

--  
up
--  作者:faterain
--  发布时间:10/10/2005 8:56:00 AM

--  
好咚咚。收下了
--  作者:keysun
--  发布时间:10/17/2005 9:15:00 PM

--  
太双了 。一直 在找 这个 。超 实用
--  作者:yanhuohy
--  发布时间:11/6/2005 3:15:00 PM

--  
和TreeView差不多吧?
--  作者:liuph3000
--  发布时间:11/19/2005 5:53:00 PM

--  
不错,顶一个
--  作者:gzcassie
--  发布时间:1/5/2006 4:16:00 PM

--  
下载不了源代码,  能否发到gzcassie@163.com,谢谢!
--  作者:SeleneLee
--  发布时间:1/11/2006 1:47:00 PM

--  
强....
--  作者:dreamw
--  发布时间:1/22/2006 7:14:00 AM

--  
顶上,下载下来分析先。
--  作者:abbess
--  发布时间:2/23/2006 6:47:00 PM

--  
以下是引用wanger_79在2005-1-26 10:47:00的发言:
为什么把 var m_sXMLFile= "TreeNode.xml";// 主菜单项文件(可改为TreeNode.asp)
改为:var m_sXMLFile = "TreeNode.asp";
就显示不出来呢?


同问,这个TreeNode.asp是不是生成新的xml文件的,怎么每效果啊,有数据库连接,但没有实现动态显示
--  作者:y777jie
--  发布时间:5/11/2006 3:36:00 PM

--  
太好了
我要好好研究
--  作者:hunter_z
--  发布时间:5/12/2006 12:15:00 AM

--  
好东西,收下了
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
171.997ms