⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.htm

📁 xml实现treeview控件
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>XMLTree2.01</title>
</head>
<body>
<table>
	<tr><td><a href="http://www.oceanstudio.net"><img border="0" src="logo.jpg"></a></td></tr>
</table>
<p> </p>
<p>
/***************************************************************************************<br>
* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMLTree2.1<br>
* 此代码版权归海洋工作室ocean所有,您可以非商业目的使用、复制、修改此代码,但需要<br>
* 保留本工作室的版权信息。如果您使用、修改此代码为商业目的,请联系本工作室取得使用许可。<br>
* 此脚本的商业许可为RMB30,被许可方除不能分发和转售之外,可以用于被许可方的任何项目和<br>
* 产品当中。<br>
* 如果您对本程序有什么建议,请email to:ocean@forever.net.cn。<br>
*<br>
* 海洋工作室<br>
* http://www.oceanstudio.net<br>
* ocean(ocean@forever.net.cn) 制作<br>
*****************************************************************************************/
<br>
使用说明<br>
此脚本的XMLTree1.0是2001年我指导我的学生所做,后来应该在2002年末的时候,我把XMLTree升级到XMLTree2.1。此js的树控件,可以从XML中加载数据。当然这个XML可以使用asp/jsp动态输出。还可以异步加载数据,这种方式是仿照msdn 
online所设计,即点击了某一个节点后才去读取数据。此能够适应大多数的应用要求。在xml中提供树状结构的样式属性,能够方便的改变显示的效果。此脚本的缺陷在于不能动态的添加和删除节点,我前几个月在写XMLTree3.0,想增加动态添加和删除节点的功能,但是基于现在的结构略为有点问题,也就耽搁了下来,但是这个2.1版本到确实为经典之作。<br>
<br>
使用注意事项:所有的节点的id必须为唯一。节点类型有三种:node , leaf , ref <br>
node: 包含孩子节点的节点, 并且其孩子节点在同一个xml文件内<br>
leaf: 叶子节点<br>
ref : 连接外部XML文件的节点<br>
这三种类型不需要制定,程序会自动判断节点的状态然后给出节点的类型,参考getType方法。<br>
<br>
属性:<br>
id:唯一表识。这个要求每个节点都不相同,包括引用的和被引用的节点。所以建议在系统id上加一个前缀。<br>
text:节点上的文字。<br>
title:节点上的提示,鼠标移动到节点上显示。<br>
text-color:节点文字颜色。默认值:#000000<br>
over-text-color:鼠标移动到节点上时节点的文字颜色。默认值:#CCCCCC<br>
selected-text-color:节点选中时文字的颜色。默认值:red<br>
background-color:节点的背景色。<br>
over-background-color:鼠标移动到节点上时节点的背景色<br>
selected-background-color:节点选中时的背景色。默认值:#CCCCCC<br>
under-line:节点上的文字是否有下划线。true:有下划线。false:没有下划线。默认:false。<br>
over-under-line:鼠标移动到节点上时是否有下划线。true:有下划线。false:没有下划线。默认:true。<br>
selected-under-line:节点选中时是否有下划线。true:有下划线。false:没有下划线。默认:false。<br>
font-size:节点文字大小。默认:9pt<br>
padding-left:节点左缩进距离。如果是叶子节点请使用leafPaddingLeft。默认:18px。<br>
padding-top:节点上边距。默认:2px。<br>
space-width:图片和图片以及图片和文字的间距。默认:2px。<br>
leafPaddingLeft:叶子节点左缩进距离。默认:18px。<br>
cursor:鼠标形状。默认:hand<br>
open-Flag:节点打开时的第一个图片(一般是-号)默认:images/openflag.gif<br>
close-flag:节点关闭时的第一个图片(一般是+号)默认:images/closeflag.gif<br>
open-folder:节点打开时的第二个图片(一般是一个文件夹的图片)默认:images/openfolder.gif<br>
close-folder:节点关闭时的第二个图片(一般是一个文件夹的图片)默认:images/closedfolder.gif<br>
leaf-image:叶子节点的图片。默认:images/url.gif<br>
href:点击节点后转向的链接。<br>
opened:节点是否打开。true:打开。false:关闭。默认:false<br>
ref:如果节点的子节点是在另外一个xml中定义的,则在这个节点中使用ref属性指定子节点的xml。<br>
selectedNode:当前选中的节点。XMLTree类型(此属性不在XML定义,而是在程序中用于获得当前选中的节点)<br>
dbl-click:是否允许有双击事件。true:允许。false:不允许。<br>
open-action:展开节点的行为。true:已展开的节点全部关闭。false:已展开的节点全部保持不变。默认:false。<br>
<br>
如果属性没有定义,那么继承父节点属性。节点可以多层。所有节点都处于root节点下。<br>
<br>
方法:<br>
加载XMLtree。<br>
load (url,container)<br>
url:xml路径。<br>
container:装载XMLTree的容器对象。<br>
<br>
展开一个节点的下一级子节点。<br>
open(nodeId) <br>
nodeId:节点Id。<br>
<br>
关闭一个节点的下一级子节点。<br>
close (nodeId)<br>
nodeId:可选,节点Id。如果不指定则为自身。<br>
<br>
选中一个节点<br>
selected (nodeId)<br>
nodeId:可选,节点Id。如果不指定则为自身。<br>
<br>
取消选中一个节点<br>
unselected(nodeId)<br>
nodeId:可选,节点Id。如果不指定则为自身。<br>
<br>
得到当前节点的类型。<br>
getType()<br>
返回值:leaf,node,ref。<br>
<br>
根据菜单项id查找菜单项,返回拥有此id的菜单项。<br>
getMenuItem (id)<br>
id:菜单项id。<br>
返回值:XMLTree类型的菜单项。<br>
<br>
根据菜单项href查找菜单项,返回拥有此href的菜单项。<br>
getMenuItemByHref (href)<br>
href:菜单项的href属性。<br>
返回值:XMLTree类型的菜单项。<br>
注意:如果有多个相同的href菜单项,则返回第一个。<br>
<br>
关闭除自身之外的所有节点。<br>
closeAllNode()<br>
<br>
将制定节点或自身节点的父节点打开。<br>
openParent(nodeId)<br>
nodeId:可选,节点id,如果不指定则为自身。<br>
<br>
将自身节点或者指定href节点的父节点打开。<br>
openParentByHref (href) <br>
href:可选,指定节点的href。如果不指定则为自身。<br>
<br>
注意:XML中ID属性不要相同。建立XMLTree对象时,对象名需与类的参数同名。例如:<br>
&lt;script language=&quot;JavaScript&quot;&gt;<br>
var mm = new XMLTree(&quot;mm&quot;);<br>
mm.loadData(&quot;tree7.xml&quot;,document.getElementById(&quot;menuC1&quot;)); 
//&quot;menuC1&quot;为所要显示的位置。如:TD,DIV(最好在TD中)<br>
&lt;/script&gt;<br>
<br>
例1:在这个例子中,顶级节点是root节点下的孩子节点,root下只有一个孩子节点,也就是只显示“顶级节点”。在“顶级节点”节点下有6个节点,是此“顶级节点”的孩子节点。其中加载的时候“顶级节点”节点是打开的(opened=&quot;true&quot;)。“顶级节点”的孩子节点都引用外部xml作为子节点(ref=&quot;...&quot;)。<br>
<br>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;GB2312&quot; ?&gt; <br>
&lt;root text=&quot;root&quot; open-folder=&quot;images/openfolder.gif&quot; 
close-folder=&quot;images/closedfolder.gif&quot; leaf-image=&quot;images/url.gif&quot;&gt;<br>
&lt;menu id=&quot;c1&quot; text=&quot;顶级节点&quot; opened=&quot;true&quot; open-folder=&quot;images/tree_community.gif&quot; 
close-folder=&quot;images/tree_community.gif&quot; leaf-image=&quot;images/tree_house.gif&quot;&gt;<br>
&lt;menu id=&quot;bc8&quot; ref=&quot;/lefttree/building.jsp?Bc_id=8&quot; text=&quot;第二层节点1&quot; 
close-folder=&quot;images/tree_more_house.gif&quot; 
open-folder=&quot;images/tree_more_house.gif&quot; /&gt; <br>
&lt;menu id=&quot;bc105&quot; ref=&quot;/lefttree/building.jsp?Bc_id=105&quot; text=&quot;第二层节点2&quot; 
close-folder=&quot;images/tree_high_house.gif&quot; 
open-folder=&quot;images/tree_high_house.gif&quot; /&gt; <br>
&lt;menu id=&quot;bc106&quot; ref=&quot;/lefttree/building.jsp?Bc_id=106&quot; text=&quot;第二层节点3&quot; 
close-folder=&quot;images/tree_business.gif&quot; open-folder=&quot;images/tree_business.gif&quot; 
/&gt; <br>
&lt;menu id=&quot;bc107&quot; ref=&quot;/lefttree/building.jsp?Bc_id=107&quot; text=&quot;第二层节点4&quot; 
close-folder=&quot;images/tree_bd.gif&quot; open-folder=&quot;images/tree_bd.gif&quot; /&gt; <br>
&lt;menu id=&quot;bc108&quot; ref=&quot;/lefttree/building.jsp?Bc_id=108&quot; text=&quot;第二层节点5&quot; 
close-folder=&quot;images/tree_chamber.gif&quot; open-folder=&quot;images/tree_chamber.gif&quot; /&gt;
<br>
&lt;menu id=&quot;bc109&quot; ref=&quot;/lefttree/building.jsp?Bc_id=109&quot; text=&quot;第二层节点6&quot; 
close-folder=&quot;images/tree_park.gif&quot; open-folder=&quot;images/tree_park.gif&quot; /&gt; <br>
&lt;/menu&gt;<br>
&lt;/root&gt;<br>
<br>
<br>
例2:例一中的第二层节点1的ref=/lefttree/building.jsp?Bc_id=8,这个ref声称的xml类似如下,每个孩子节点的类型也为引用节点:<br>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;GB2312&quot; ?&gt; <br>
&lt;root text=&quot;root&quot;&gt;<br>
&lt;menu id=&quot;b172&quot; ref=&quot;/lefttree/cell.jsp?B_id=172&quot; 
open-folder=&quot;images/tree_building.gif&quot; close-folder=&quot;images/tree_building.gif&quot; 
text=&quot;第三层节点1&quot; /&gt; <br>
&lt;menu id=&quot;b173&quot; ref=&quot;/lefttree/cell.jsp?B_id=173&quot; 
open-folder=&quot;images/tree_building.gif&quot; close-folder=&quot;images/tree_building.gif&quot; 
text=&quot;第三层节点2&quot; /&gt; <br>
&lt;menu id=&quot;b174&quot; ref=&quot;/lefttree/cell.jsp?B_id=174&quot; 
open-folder=&quot;images/tree_building.gif&quot; close-folder=&quot;images/tree_building.gif&quot; 
text=&quot;第三层节点3&quot; /&gt; <br>
&lt;/root&gt;<br>
<br>
例3:这是最下层节点的xml。在例二中,“第三层节点1”引用了ref=&quot;/lefttree/cell.jsp?B_id=172&quot;,这个引用生成的xml类似如下:Href标明叶子结点的连接。gotoPage函数接收一个数字作为参数,这个函数会调用gotoPage()函数。也可以直接写一个链接(比如最后一个节点)。<br>
<br>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;GB2312&quot; ?&gt; <br>
&lt;root text=&quot;root&quot;&gt;<br>
&lt;menu id=&quot;u7661&quot; href=&quot;javascript:gotoPage(7661)&quot; text=&quot;101&quot; /&gt; <br>
&lt;menu id=&quot;u7662&quot; href=&quot;javascript:gotoPage(7662)&quot; text=&quot;102&quot; /&gt; <br>
&lt;menu id=&quot;u7663&quot; href=&quot;javascript:gotoPage(7663)&quot; text=&quot;104&quot; /&gt; <br>
&lt;menu id=&quot;u7664&quot; href=&quot;javascript:gotoPage(7664)&quot; text=&quot;201&quot; /&gt; <br>
&lt;menu id=&quot;u7665&quot; href=&quot;javascript:gotoPage(7665)&quot; text=&quot;202&quot; /&gt; <br>
&lt;menu id=&quot;u7666&quot; href=&quot;javascript:gotoPage(7666)&quot; text=&quot;203&quot; /&gt; <br>
&lt;menu id=&quot;u7667&quot; href=&quot;javascript:gotoPage(7667)&quot; text=&quot;204&quot; /&gt; <br>
&lt;menu id=&quot;u7668&quot; href=&quot;javascript:gotoPage(7668)&quot; text=&quot;301&quot; /&gt; <br>
&lt;menu id=&quot;u7669&quot; href=&quot;javascript:gotoPage(7669)&quot; text=&quot;302&quot; /&gt; <br>
&lt;menu id=&quot;u7670&quot; href=&quot;javascript:gotoPage(7670)&quot; text=&quot;303&quot; /&gt; <br>
&lt;menu id=&quot;u7671&quot; href=&quot;javascript:gotoPage(7671)&quot; text=&quot;304&quot; /&gt; <br>
&lt;menu id=&quot;u7672&quot; href=&quot;/getCell.jsp?id=u7672&quot; text=&quot;401&quot; /&gt; <br>
&lt;/root&gt;</p>
<p> </p>
<hr width="50%" style="color: #FF0000">
<div style="text-align:center;font-size:9pt">copyright 2004 &copy 海洋工作室(<a href="mailto:ocean@forever.net.cn">ocean@forever.net.cn</a>)</div>
<p> </p>
</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -