`

移植IEWebControls到Java开发环境------------转载自他人

阅读更多

在.Net环境中,本人觉得iewebcontrols控件做的很不错,但是在一个Java项目中,我想找一个TreeView web控件,试过了xtree以及YUI,但始终感觉不如iewebcontrols中的treeview做的好,我想:可不可以将它移植过来呢?
我将页面生成的Html文件保存下来,分析了一下,以下是测试脚本:

 代码
  1. //**********************************************************************************************//   
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">   
  3. <HTML>   
  4.  <HEAD>   
  5.   <title>tree</title>   
  6.   <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">   
  7.   <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">   
  8.   <meta name="vs_defaultClientScript" content="JavaScript">   
  9.   <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">   
  10.   <LINK href="css/style.css" _fcksavedurl=""css/style.css"" type="text/css" rel="stylesheet">   
  11.  </HEAD>   
  12.  <SCRIPT>   
  13.     //通过NodeData查找节点   
  14.     function getNodeByData(tree,data){   
  15.         var root=tree.getChildren();   
  16.         for(var i=0;i<root.length;i++){   
  17.            if(root[i].getAttribute("NodeData")==data){   
  18.               return root[i];   
  19.            }else if(root[i].getChildren().length>0){   
  20.               var node=getNodeByData(root[i],data);   
  21.               if(node!=nullreturn node;   
  22.            }   
  23.         }   
  24.         return null;   
  25.     }   
  26.     //通过节点文本查找节点   
  27.     function getNodeByText(tree,text){   
  28.         var root=tree.getChildren();   
  29.         for(var i=0;i<root.length;i++){   
  30.            if(root[i].getAttribute("Text")==text){   
  31.               return root[i];   
  32.            }else if(root[i].getChildren().length>0){   
  33.               var node=getNodeByData(root[i],text);   
  34.               if(node!=nullreturn node;   
  35.            }   
  36.         }   
  37.         return null;   
  38.     }   
  39.     //测试添加节点   
  40.     function doadd(){   
  41.         //alert(tvNodes.getTreeNode(tvNodes.selectedNodeIndex).getAttribute("NodeData"));   
  42.         var node1=getNodeByText(tvNodes,'权限管理');   
  43.         var node2=getNodeByData(tvNodes,'1101');   
  44.         //alert(node1.getAttribute("NodeData"));   
  45.         //alert(node2.getAttribute("Text"));   
  46.         var node3=tvNodes.createTreeNode();   
  47.         if(node1!=null && node2!=null){   
  48.          node3.setAttribute("NodeData","1109");   
  49.          node3.setAttribute("Text",node2.getAttribute("Text"));   
  50.          node3.setAttribute("NavigateUrl",node2.getAttribute("NavigateUrl"));   
  51.          node3.setAttribute("ImageUrl",node2.getAttribute("ImageUrl"));   
  52.          node3.setAttribute("SelectedImageUrl",node2.getAttribute("SelectedImageUrl"));   
  53.          node3.setAttribute("ExpandedImageUrl",node2.getAttribute("ExpandedImageUrl"));   
  54.          node3.setAttribute("Target",node2.getAttribute("Target"));   
  55.          node1.add(node3);   
  56.         }   
  57.     }   
  58.     //测试删除节点   
  59.     function dodel(){   
  60.         var node=getNodeByData(tvNodes,'1109');   
  61.         //alert(node.getParent().getAttribute("Text"));//获取父节点   
  62.         if(node!=null) node.remove();   
  63.     }   
  64.    </SCRIPT>   
  65.  <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" rightmargin="0" scroll="no">   
  66.   <form name="Form1" method="post" action="left.aspx" id="Form1">   
  67.        <input type="hidden" name="__tvNodes_State__" value=""/>   
  68.    <FONT face="宋体">   
  69.     <TABLE class="Table0" id="TableLeft" cellSpacing="1" cellPadding="1" border="0" width="180"  
  70.      height="100%">   
  71.      <TR>   
  72.       <TD><?XML:NAMESPACE PREFIX=TVNS />   
  73. <?IMPORT NAMESPACE=TVNS IMPLEMENTATION="webctrl_client/1_0/treeview.htc" />   
  74. <tvns:treeview id="tvNodes" selectedNodeIndex="0" HelperID="__tvNodes_State__" systemImagesPath="./webctrl_client/1_0/TreeImages/" onexpand="javascript: if (this.clickedNodeIndex != null) this.queueEvent('onexpand', this.clickedNodeIndex)" oncollapse="javascript: if (this.clickedNodeIndex != null) this.queueEvent('oncollapse', this.clickedNodeIndex)" oncheck="javascript: if (this.clickedNodeIndex != null) this.queueEvent('oncheck', this.clickedNodeIndex)" onselectedindexchange="javascript: if (event.oldTreeNodeIndex != event.newTreeNodeIndex) this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex)" style="height:100%;width:175px;Z-INDEX: 101">   
  75.  <tvns:treenode Expanded="True" Selected="true" NavigateUrl="baseinfo/info_employee_main.aspx" NodeData="1000" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  76.   基本信息管理<tvns:treenode NavigateUrl="baseinfo/info_employee_main.aspx" NodeData="1001" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  77.    用户管理   
  78.   </tvns:treenode><tvns:treenode NavigateUrl="baseinfo/info_company_main.aspx" NodeData="1002" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  79.    部门公司管理   
  80.   </tvns:treenode><tvns:treenode NavigateUrl="baseinfo/info_BaseCode_main.aspx" NodeData="1003" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  81.    基本代码管理   
  82.   </tvns:treenode>   
  83.  </tvns:treenode>   
  84.  <tvns:treenode Expanded="True" NavigateUrl="right/user_node.aspx" NodeData="1100" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  85.   权限管理<tvns:treenode NavigateUrl="right/Auth_node_info.aspx" NodeData="1101" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  86.    节点信息   
  87.   </tvns:treenode><tvns:treenode NavigateUrl="right/Auth_right_info.aspx" NodeData="1102" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  88.    页面管理   
  89.   </tvns:treenode><tvns:treenode NavigateUrl="right/Auth_role_info.aspx" NodeData="1103" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  90.    角色信息   
  91.   </tvns:treenode><tvns:treenode NavigateUrl="right/user_node.aspx" NodeData="1201" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  92.    节点授权   
  93.   </tvns:treenode><tvns:treenode NavigateUrl="right/user_right.aspx" NodeData="1202" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  94.    页面授权   
  95.   </tvns:treenode><tvns:treenode NavigateUrl="right/user_role.aspx" NodeData="1203" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  96.    用户角色管理   
  97.   </tvns:treenode><tvns:treenode NavigateUrl="right/user_query.aspx" NodeData="1204" ImageUrl="images/image/page.gif" SelectedImageUrl="images/image/xiaotu.jpg" ExpandedImageUrl="images/image/expand.gif" Target="mainFrame">   
  98.    查询授权   
  99.   </tvns:treenode>   
  100.  </tvns:treenode>   
  101. </tvns:treeview>   
  102.       </TD>   
  103.      </TR>   
  104.     </TABLE>   
  105.  <table style="position: absolute; width: 200px; top: 100px; left: 300px; height: 100%;">   
  106.         <input type='button' value='add' onclick='doadd()'></input>   
  107.         <input type='button' value='delete' onclick='dodel()'></input>   
  108.  </table>   
  109.  </FONT>   
  110.  </form>   
  111.  </body>   
  112. </HTML>   
  113. //**********************************************************************************************//   
在IE下,以上Html脚本可以单独作为文件保存,它和iewebcontrols安装后的webctrl_client目录在同一个目录下,这样就可以运行在实际的开发当中,<tvns:treenode>节点我们可以采用XML来生成。
    在该脚本中,我添加了四个函数,分别用来:(1)通过NodeData查找节点;(2)通过节点文本查找节点;(3)添加节点;(4)删除节点。我想具备了这几个功能之后,在jsp当中就可以灵活的使用这个treeview组件了。
    技术说明:在这个组件当中,使用了两个很关键的技术:htc以及XML命名空间,当然也用到了DOM和Javascript,在我的脚本当中,使用了里面的方法和属性,详细使用和功能需要揣摩webctrl_client\1_0下的treeview.htc文件中的方法和属性
    说明:在java环境中,如果出现树的部分图片显示不正常,检查一下图片链接地址是否有问题,参考路径是systemImagesPath,还有一种可能情况是图片的名称大小写是否一致,不一致的话修改图片名称,因为在java环境中很多服务器的文件名是区分大小写的。


分享到:
评论

相关推荐

    IEwebcontrols

    1. **安装**:通过提供的`iewebcontrols.msi`安装文件,可以将控件库添加到.NET开发环境(如Visual Studio)中。 2. **引用控件**:在项目中引入IEWebControls的DLL文件,并在网页代码中引用相应的控件。 3. **设计...

    iewebcontrols

    在ASP.NET环境中,开发者可以使用Visual Studio集成开发环境(IDE)拖放iewebcontrols控件到网页上,然后设置其属性、事件和方法。例如,可以添加一个Calendar控件,设置其显示日期范围,并编写JavaScript代码处理...

    Win10 安装 IEWebControls 控件

    ### Win10 安装 IEWebControls 控件 #### 知识点一:IEWebControls 控件概述 - **定义**:IEWebControls 是一个允许开发者在 Web 应用程序中使用 Internet Explorer (IE) 浏览器功能的组件集合。它支持在非 IE ...

    IEWebControls

    在安装**iewebcontrols.msi** 文件后,这些控件将被添加到Visual Studio的工具箱中,便于拖放使用。配合**说明.txt** 文件,开发者可以详细了解每个控件的属性、方法和事件,以及如何在代码中对其进行操作和定制。 ...

    iewebcontrols安装包

    **IEWebControls** 是一套专为网页开发设计的控件集,主要应用于ASP.NET环境中,为Web应用程序提供类似于桌面应用程序的交互体验。这个安装包包含了实现丰富用户界面所需的多种控件,例如数据网格、菜单、工具栏等,...

    IEWebControls for Win10

    在win10上安装 IEWebControls,提示错误信息如“IE Web Controls need IIS5 or Later”。下载该组件安装便可。

    iewebcontrols问题示图

    iewebcontrols问题示图

    IEWebcontrols

    进入注册表修改以下内容。 windows 10 企业版本的位置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters MajorVersion将10改为7(十进制) MinorVersion将0改为5(十进制) ...

    IEWebControls免安装版

    **IEWebControls免安装版详解** 在.NET框架中,开发人员常常会遇到需要在Web应用程序中集成各种控件的需求,以提升用户体验和交互性。`IEWebControls`是一款专为.NET开发者设计的控件库,它提供了一系列强大的Web...

    IEWebControls安装源码

    友情提示:你成功安装 IEWebControls 后(默认C盘哈),你在CProgram FilesIE Web Controls下有个README.txt的文本文件,上面非常详细的讲解了如何正确使用 IEWebControls 的方法,并给出了样例。:) 以上解决...

    微软Treeview控件iewebcontrols

    总的来说,微软的Treeview控件iewebcontrols为Web开发者提供了强大且灵活的工具,用以构建具有层次结构的用户界面,同时提供了丰富的功能和良好的扩展性,使得在ASP.NET环境中处理复杂数据结构变得轻松易行。...

    IEWebControls(windows 10可用) (1).rar

    新版win10的工具类,以前老的不支持,用友ERP软件安装时候自带的工具类无法安装,该安装包可以解决问题

    powerbuider11 CS 转换为BS

    #### 一、开发环境的搭建 为了实现从客户端/服务器(C/S)架构转换至浏览器/服务器(B/S)架构,首先需要搭建合适的开发环境。根据提供的内容,我们需要准备以下软件和工具: 1. **Windows IIS 5.0或更高版本**:...

    基于递归算法和树形控件的动态树形图的实现

    微软在标准ASP.NET控件基础上推出的Internet Explorer Web Controls集合便是一个很好的例子,其中的TreeView控件尤其受到青睐。TreeView控件通过提供一种直观的层次化视图,帮助用户更好地管理和浏览复杂的数据结构...

    vs2003树的安装控件iewebcontrols.msi

    iewebcontrols.msi vs2003树的安装控件 Microsoft.Web.UI.WebControls.TreeView VS2003中TREEVIEW需要在C:\Inetpub\wwwroot中添加一个webctrl_client全局内容,这是微软的一个控件,里面有TREEVIEW和MutliPage,...

Global site tag (gtag.js) - Google Analytics