邓华

BlogJava 联系 聚合 管理
  48 Posts :: 0 Stories :: 149 Comments :: 0 Trackbacks
这两天,为了实现ajax的树形目录,找了很多代码. 最后确定用xloadtree.

在xloadtree的主页上, 有项目xtree 和xloadtree  一个是固定显示的树,一个是动态加载的树.

在他的隐藏目录里,有一个xtree2  地址为http://webfx.eae.net/dhtml/xtree2b/  这个是正在测试的版本, 融合了xtree和xloadtree.  更新了代码, 但还是beta版.

xloadtree 可以在各种浏览器下通用. 兼容性效果非常好.

主要的三个文件:  xtree2.js, xloadtree2.js, xtree2.css 
xloadtree2.js 主要是对ajax方式的封装, 实现异步调用. 显示树的时候,调用xtree2.js里面的代码. xtree2.css 控制树的显示式样.  在查看他的文档的时候,主要看xtree2的文档,这里面才有对树怎样进行操作. xloadtree只是个调用包装.

xtree2.js :
输出html代码的时候, 调用的是toHtml() 方法. 在这个方法中,其中最主要的是getRowHtml() 来得到每一行的输出.  方法中用 getExpandIconHtml() 来控制展开后图标的代码输出, getIconHtml()控制未展开的图标输出.  getLabelHtml() 控制文本的输出, 如果不想要图标,就把图标的输出代码屏蔽掉就OK.


关于在页面输出后,看不到源代码的调试方法:

<br/>
<INPUT type="button" name="ad" onclick="charge();" value="change">
<br/>
<TEXTAREA rows="10" cols="30" id="ttt" name="ttt"></TEXTAREA>
<br/>
<INPUT type="button" name="findnode" onclick="findnode();" value="findnode">
<br/>
<INPUT type="button" name="openpath" onclick="openpath();" value="openpath">
<script>
    
function charge(){
        document.getElementById('ttt').value
=tree.getSelected().toHtml();
    }
    
    
function findnode(){
        tree.findChildByText(document.getElementById('ttt').value,
0);
    }
    
    
function openpath(){
        tree.openPath(webFXTreeHandler.htmlToText(document.getElementById('ttt').value),true);
        tree.getSelected().expand();
    }
</script>

在页面中放置如上代码.  注意,先要获得树的句柄.  比较创建树的时候,用如下代码:

var tree = new WebFXTree("<%=rootname%>");

在展开的树点,选择后, 点击change 按钮,可以得到这个节点对应的html代码.  然后对应html可以找到相应的CSS. 这个就不多写了.

xloadtree在调用子节点树的时候,和服务器之间传输的是xml.
DTD的定义如下
<!ELEMENT tree (tree*)>
<!ATTLIST tree
            text        CDATA    #REQUIRED
            src            CDATA    #IMPLIED
            action        CDATA    #IMPLIED
            icon        CDATA    #IMPLIED
            openIcon    CDATA    #IMPLIED
            target        CDATA    #IMPLIED
>

其中 text为显示文本,  src为下级目录目录的地址. action为点击的链接. icon为图标,openIcon为节点打开后的图标. target为目标,和a标签的target用法一样.


因为xml 文件不能传送< > 这种符号, 可以采用&lt; &gt; 传送.   因为项目里需要在树上显示HTML代码,所以在js里面做了修改.  修改的部分比较多. 还没有测试有没有意外情况. 这个以后再说.


还有, 在使用过程中,有一个BUG. 是设置tabindex的. 会出错.

this.setTabIndex(this.tabIndex); 

将xtree2.js文件中的这一行屏蔽掉就行了. 当然,先要确定你不需要使用tab键定位. :)


2006- 4- 22 增加:
  在要打开指定目录树的时候 如果树里面包含html代码, 可以用如下语句
<script>try{top.tree.tree.openPath(webFXTreeHandler.htmlToText("/北京新东方学校/<font color=red><b>留学考试</b></font>/fff"),true);}catch(err){}</script>


2006-5-19
前天在同事应用的时候,出现的问题是加载过程中如果树结点为中文,就加载不上. 后来找到问题的原因是在用servlet输出xml 的时候,是用的steam的方式, 后来改成字符输出方式才正确. 如下.

            PrintWriter out=response.getWriter();
            out.write(outputXML.toString());
            out.flush();
            out.close();


2008-09-03

关于随机参数,指的是URL请求中带有一个随机参数。 这个参数,可以是当前时间,或者随机数。 用来避开浏览器的缓存

 

posted on 2005-11-13 18:55 邓华的碎碎念 阅读(27844) 评论(113)  编辑  收藏
评论共2页: 1 2 下一页 

Feedback

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-03-30 10:16 lip199162
<?xml version="1.0"?>
<tree>
<tree text="1sub" action="plist.php?mid=3&sid=6" target="main"/>
</tree>

这几行XML问题出在 plist.php?mid=3&sid=6 如果我改成 plist.php?mid=3或

plist.php?sid=6 都不会有问题

为什么这行语句不能有 & 这个字符呀,郁闷呀,求救一下,拜托了.  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-03-31 10:38 nickey's home
@lip199162
那就改成&amp; 试试?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-03-31 15:48 zz
呵呵,路过看看

我是用一个Servlet 直接吐出数据的,只要编码正确,都没有问题

想问一个问题,我树图是逐层加载的,当加载到最后一个节点的时候,后台会返回空数据,xloadtree就会出现错误,我只好返回一个xml来表示是空节点,比较难看,如何解决?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-03-31 16:15 lip199162
我的问题,已经解决了,真的很感谢各位,谢谢了  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-04-18 11:08 aaa
有没有谁用过这个东东,为啥非要生成一个xml 文件呢?能不能直接用从后台获取的xml 数据  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-04-20 16:31 hailang
我想知道如何在树上显示html代码,具体的js修改是哪些?
QQ:28308402  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-04-22 10:42 intraweb
在使用xloadtree生成xml文件并载入时,发现文件生成没有问题,但是在load时,页面有时显示error,说什么xml document have not top leve element,我查了xml文件,结构是没有问题的,不知道各位遇到过这种问题没有?是不是他的bug

具体我的步骤是将节点的src指定到一个jsp文件中,该jsp文件完成生成XML文件,并使用recpose.sendredirect到新的xml文件,不知是不是我的步骤有什么问题。我试了如果把生成文件和载入xml文件分在两个文件中分步完成基本没有问题。难道生成文件和载入xml要分为两步完成吗?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-04-24 16:42 nickey's home
TO intraweb

不应该转发, 应该直接输出xml.   回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-04-25 22:21 intraweb
我是使用javabean进行生成xml文件的,如何直接输出啊?难道要用servelet才行?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-04-27 15:42 minghaitang
现在的xloadtree都是一次异步调用,再点第2次的时候就不去后台取数据了,如何实现每次展开时都进行异步调用?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-01 18:36 wen4516
你好,,你能否告诉我让菜单一开始显示的就是全展开的状态吗。。。。这样显示比较直观  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-01 22:54 atoi
@wen4516
tree.expandAll();


另外,我也有一个问题,关于动态加载的。
我在自己的PHP程序中加载子节点。如果直接使用xtree2b演示使用的tree.xml,
var tic = new WebFXLoadTreeItem('asdf', 'tree.xml')
这样可以加载没有任何问题,但是我一旦把src参数改为php文件,不管带不带参数,都不能加载节点,即使我把tree.xml直接改名为tree.php都一样,显示的错误信息为:
Error loading tree.php (200: OK)
请问这是怎么回事?另外有没有什么方法可以调试?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-02 11:19 wen4516
我的菜单是与数据库相连的我没有定义它。显示方式是

<div class="dynamicMenu">
<menu:useMenuDisplayer name="ListMenu" pository="repository">
<menu:displayMenu name="DatabaseMenu"/>
<menu:displayMenu name="StandaloneMenu"/>
</menu:useMenuDisplayer>
</div>

怎样才能做到进入页面菜单以全展开的形式显现  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-10 18:44 kind
tree.add(new WebFXLoadTreeItem("Tree Item 2", "tree.xml", "http://www.google.com", "main", "", ""));
為什麼我加上main就不行呢,一片空白,去掉就好了
可是我不想把連接開在本窗口,而是想開在main窗口
有辦法嗎?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-12 10:21 小辉
我用的Weblogic为什么加载XML的时候老报错呀?我直接使用静态的demo.html也不能加载 XML,但是用Firefox就可以用了,什么原因呀  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-12 10:26 小辉
哪位大哥帮帮忙呀
我的问题很简单
我想运行demo.html文件,demo.html和Tree.xml都是下载的源文件,
用 IE 时 加载 XML 失败
用 Firefox 加载 XML 成功
放到Tomcat 使用IE中 成功
但是放到Weblogic使用IE 失败了
我们的工程使用的Weblogic,什么原因呀  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-12 10:26 小辉
哪位大哥帮帮忙呀
我的问题很简单
我想运行demo.html文件,demo.html和Tree.xml都是下载的源文件,
用 IE 时 加载 XML 失败
用 Firefox 加载 XML 成功
放到Tomcat 使用IE中 成功
但是放到Weblogic使用IE 失败了
我们的工程使用的Weblogic,什么原因呀  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-13 22:34 nickey
@小辉

xloadtree和用的什么服务器是没有关系的.
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-14 02:31 vincent_qiutian
@nickey
应该没有关系,只要客户断支持JavaScript好像就行了:)  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-17 21:11 aa
写了一个读xml文件的方法,生成树,怎么传上去,想把展示图片页传上去  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-18 22:02 vincent_qiutian
你好,看了你写的文章对我的启发很大,但是在使用中却遇到了些问题,希望您能够给一些建议:
我采用了你提供的Xloadtree,一个JSP文件在执行的时候首先在指定的目录中生成了一个一个tree.xml文件,最后还是在这个页面下面调用了这个tree.xml
var atree = new WebFXLoadTree("系统权限","xmltreea.xml");
atree.build();

但是如果用户刷新了本页面后,tree.xml文件已经更新了内容,但是显示的还是上一次没有刷新的内容,为什么?

还有你给出的example.htm页面上有一个“重新加载异步树”的按钮调用了atree.reload()方法,但是我如果采用自己生成的XML调用这个方法IE就报错,后来发现,如果XML文件中没有这一行“<TreeNode text="递归加载" radio="true" src="tree.xml" />” 这个按钮就不起作用,能给我解答一下吗?

我所需要的就是每次调入的时候,能够都重新加载一遍XML文件,谢谢!
我的联络方式:
msn:qiutian1976@minihome.8800.org
QQ:568670(请注明XloadTree)
Email:qiutian1976@163.com

希望您能够在百忙之中抽出一些时间给与解答,谢谢!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-19 09:32 nickey's home
@vincent_qiutian

但是如果用户刷新了本页面后,tree.xml文件已经更新了内容,但是显示的还是上一次没有刷新的内容,为什么?

这个情意我没有碰到过,重新开个IE 呢? 可能跟IE的缓存有关系,在request和meta里面设一下,不缓存,应该就没有问题了.

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-19 14:00 vincent_qiutian
@nickey's home

你好,虽然添加在Request和Meta上添加了禁用缓存,但是在同一个IE浏览器中,刷新页面还是不好用,显示的还是第一次load进来的信息。
但是新开一个网页,输入网址却能解决这个问题,但是实际应用中我是用这个Tree来显示用户的权限列表的,当第一次调入的时候显示的是A的用户的权限列表,当我返回后点击B后,虽然XML文件已经更新,列表显示的还是A的权限,
我都郁闷了:(

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-19 19:34 nickey's home
@vincent_qiutian
你的xml文件没有加吧...xml文件我也不知道怎么加...-_- 用servlet输出下?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-20 02:54 vincent_qiutian
@nickey's home
总结问题如下:
1.按照例子正确的配置了文件的路径和XML文件的路径,第一次打开本网页,可以显示正常信息,当进入同一个网页,但是参数传递不同的时候,后台已经重建了这个XML文件,但是,仍旧显示原来的信息
找到一个貌似可以解决的办法,再开一个新网页,然后输入这个XML文件的地址,例如:http://localhost:8080/test/xmltree.xml,浏览器就显示出了重建后的内容(说明,系统已经根据传递参数重新建立,并且文件生成正确),然后在切换到第一次打开的那个浏览器,这个时候刷新页面的时候,就会显示正确的结果了
但这个方法不具备实用性,因为用户不会按照你的这个麻烦的方式去操作
2.当把IE的缓存由“自动”设置成“每次访问页面都检测”,这样虽然刷新还是显示原有内容,但是刷新两次后就会显示正确内容。

以上问题通过不同的机器和操作系统反复测试,问题依旧。


我是用的环境是Tomcat 5 +JSP
通过以上情况判断,由于我的XML文件名称从来没有变更过(虽然内容在更新),Tomcat 缓存了我的这个XML文件,导致刷新后内容不变,但是我又找不到Tomcat怎么禁止缓存XML文件的方法,郁闷!

我猜想的解决方式,页面调用前,随机生成一个XML文件名称,然后让xloadtree去调用,调用结束后,在页尾删除这个XML文件,这样每次用户访问的时候是用的都是不同的XML文件,这样可以避免Tomcat缓存已经使用过的XML文件,这个只是我的想法,有时间测试一下。  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-20 19:26 vincent_qiutian
通过随机生成XML文件名称得方法解决了问题,但是Tomcat为什么缓存以前生成XML文件的问题依旧没有解决  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-21 10:20 nickey's home
@vincent_qiutian
不用随机文件名吧,加个随机参数就行了..  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-21 15:10 vincent_qiutian
@nickey's home
呵呵没有大区别了 :) 现在好用了! 谢谢你:)  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-23 22:45 wo
@nickey's hom
你用的是这个么?

open ('GET', file, true);
send ('');
每刷新一次,
就读一次文件
cache
是么  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-05-25 10:00 绝类
我想展开的时候对每个节点进行功能操作(例如填删改的操作)该如何实现?
有人做过类似的操作吗?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-12 13:59 ancory
我现在想通过一个jsp文件直接把xml文件的内容输出,而不是先生成xml文件,然后在取,这样总是提示内容为空!为什么啊,如果是servlet的情况我没有测试,另外通过一个javabean输出xml文件也应该可以吧?有人通过应用jsp文件成功了吗?这个jsp文件发个例子到上面看看,谢了!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-14 09:13 zz
@ancory
很简单的,代码如下
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.io.*" %>
<%@ page import="org.jdom.*" %>
<%@ page import="org.jdom.input.DOMBuilder" %>
<%@ page import="org.jdom.output.*" %>
<%
try {
org.jdom.Document doc = (org.jdom.Document)request.getSession().getAttribute("TreeDoc");
response.setContentType("text/xml");
PrintWriter outt = response.getWriter();
XMLOutputter outer=new XMLOutputter(" ",true,"GBK");
outt.println(outer.outputString(doc));
}
catch (Exception ex) {
ex.printStackTrace();
}
%>  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-15 10:24 ancory
response.setCharacterEncoding("GB2312");
String s = (String)request.getParameter("keyID");
String s1 = ",again";
response.setContentType("text/xml, charset = GBK");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
out.println("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
out.println("<tree>");
out.println(" <tree text=\"myxml1测试" + s + s1 + "\" action=\"http://webfx.eae.net">http://webfx.eae.net\" />");
out.println(" <tree text=\"myxml2\">");
out.println(" <tree text=\"myxml2.1\" action=\"javascript:alert(2.1)\" />");
out.println(" </tree>");
out.println(" <tree text=\"myxm13\" action=\"http://webfx.eae.net">http://webfx.eae.net\" />");
out.println("</tree>");
out.close();

这样不行吗?不支持中文!
org.jdom这个包我没有找到  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-15 10:28 ancory
PrintWriter out=response.getWriter();
out.write(outputXML.toString());
out.flush();
out.close();
这里的 outputXML是什么东西啊,我用一个StringBuffer得到xml格式的字符串,然后输入,还是不支持中文?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-15 11:46 nickey's home
噢. 统一用utf-8,不应该出现中文问题的.  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-19 15:53 zz
@ancory
我是用jdom 来解析xml 的

如果是用Servlet来输出数据,我设置如下
response.setCharacterEncoding("text/xml; charset=GBK");
..................
response.getWriter().println(str);//这里的str是一个xml字符,encoding="GBK"

页面的编码也是"GBK"

这里要注意Servlet的输入格式和编码,xml字符串的encoding,页面的编码  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-19 15:54 zz
这里要注意Servlet的response的setCharacterEncoding方式,xml字符串的encoding,页面的编码   回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-20 14:41 ancory
我用jsp和servlet都试过,都对中文不支持,昏了!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-21 09:48 zz
@ancory
:(

是否编码不统一? 你先把xml字符串直接在页面上打印(servlet输出或jsp打印)看看,如果可以正常显示一般不会有问题

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-21 13:32 ancory
直接打印都正常,编码没有问题,如果是从xml中读取也是正常的,就是通过jsp或servlet输出后就不正常,问题处在这里:xloadtree.js的_xmlFileLoaded(MyXmlHttp.responseXML, jsNode);
这行代码上,如果有中文MyXmlHttp.responseXML取到的就是空,所有总是弹出一个空提示框,难道你们和我的js文件不同?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-21 18:46 yehaoren
如果我想修改节点的名称,JS应该如何写,在线等解  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-22 16:41 ancory
@yehaoren
这是一个动态加载树,如果是从xml文件读取节点,直接改xml文件的第一个字段就可以了,如果是从数据库读取,就不存在问题了  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-22 16:57 ancory
现在有个问题:这个软件是有版权的,如果在项目中使用,会不会有问题啊,怎么解决呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-23 13:39 zz
@ancory
responseXML的确有时候会有问题,接收的东西为空
换成responseText试试

这个是开源的,不会有问题  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-23 15:22 ancory
@zz
谢谢指点,我查资料改好了。
现在我想问一下这个target在哪里设置,怎么设置呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-26 10:54 zz
<?xml version="1.0" encoding="UTF-8"?>
<tree>
<tree id="1" text="test1" src="" action="test?type=1" toolTip="test1" target="leftframe" />
</tree>

是这个target么?   回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-26 12:10 ancory
这个可以加,就是在开始的时候怎么加:
var tree = new WebFXTree("Root");
tree.add(new WebFXTreeItem("Tree Item 11","testxml.jsp"));
如果这个地方要加target,怎么加啊,试了好长时间没有成功!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-06-26 17:00 zz
这个要修改xtree2.js文件
添加2个方法
//在1522行原先方法下添加
//zz
function WebFXTreeItem(sText, oAction,target) {
WebFXTreeAbstractNode.call(this, sText, oAction,target);
}
在288 行原先方法下添加
//zz
function WebFXTreeAbstractNode(sText, oAction,target) {
this.childNodes = [];
if (sText) this.text = sText;
if (oAction) this.action = oAction;
if (target) this.target = target;
this.id = webFXTreeHandler.getUniqueId();
if (webFXTreeConfig.usePersistence) {
this.open = webFXTreeHandler.persistenceManager.getExpanded(this);
}
webFXTreeHandler.addNode(this);
}

测试代码:
tree.add(new WebFXTreeItem("Tree Item 1","http://www.google.com","_about"));  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-05 15:22 xra
请高手帮忙:  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-05 15:30 xra
http://webfx.eae.net/dhtml/xtree2b/下载的xtree2b-20050606.zip,运行里面的xloadtreedemo.html,出错?已经把this.setTabIndex(this.tabIndex); 去掉。提示Error loading tree.xml(0:Unknown).
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-05 16:01 xra
奇怪了啊,为什么我运行都是这样的错误啊!请大家不吝赐教啊!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-05 16:24 xra
我刚试了下,启动tomcat以后再运行就没有问题,如果直接运行就会出错,郁闷!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-19 12:00 fang
诸位,怎样一次展开所有节点呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-19 17:19 fang
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<title>XTree 2 Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="css/xtree2b/xtree2.links.css">
<script type="text/javascript" src="js/xtree2b/xtree2.js"></script>

<script type="text/javascript" src="js/xtree2b/xloadtree2.js"></script>


</head>
<body>

<script type="text/javascript">
//alert("ok");
var tree = new WebFXLoadTree("Hello World", "tree.xml");
tree.write();

</script>

</body>
</html>

以上代码出现问题 WebFXLoadTree 该问题怎么跟踪呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-19 17:20 fang
以上代码出现问题 'WebFXLoadTree'未定义 请问该问题怎么跟踪呢?   回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-19 17:54 fang
http://webfx.eae.net/dhtml/xtree2b/ 下载的东西在apache-tomcat-5.5.16下可用,而在Resin 1.2.10下不可用.

请问这是怎么回事?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-21 17:32 fang
请问用http://webfx.eae.net/dhtml/xtree2b/能否实现树型结构的多选框?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-26 14:30 poplar
@nickey's home

怎么用随机参数啊?
我搞了一天也没有搞定,我是通过servlet从数据库中取数据,
但数据库数据更新了,但目录树怎么刷新也更新不了。
希望每次点击一个节点的时候能重新从数据库中取数据。
我用的web服务器是weblogic 8.14

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-10-12 15:52
犯得上发射点法@lip199162
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-10-19 21:25 itwhen
nickey 我也出现了这个问题
var tic = new WebFXLoadTreeItem('asdf', 'tree.xml')
这样可以加载没有任何问题,但是我一旦把src参数改为php文件,不管带不带参数,都不能加载节点,即使我把tree.xml直接改名为tree.php都一样,显示的错误信息为:
Error loading tree.php (200: OK)
请问这是怎么回事?
谢谢了   回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-10-19 22:23 itwhen
找到原因 动态返回内容前需要设置Content-Type为text/xml  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2006-11-23 19:01 wyq_tomorrow
有一段时间了,为了这个头都大了.
我用这个控件读取xml文件成功了,我用dom4j从数据库中读出文件,生成xml文件,然后进行 加载,添加子节点,删除节点都可以,但是我在删除最后一个节点之后,在初始化xml文件,xml文件已经变了,就是生成的树还是空的,我把网页关了,然后再打开就可以了,不知道原因,希望高手给与指教。  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-01-30 15:47 xief
IE上打开就得不到MyXmlHttp.responseXML中得xml内容是怎么解决得呀?各位大侠帮帮忙呀:(  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-02-27 15:06 hshen
把下面的语句注销掉即可
if (count == 0) {
jsNode.errorText = "Error loading " +jsNode.src + " (???)";
}  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-03-18 14:55 roroya
我用xloadtree做了动态加载的树,是通过servlet里把数据库的数据调出后改写成xloadtree定义的xml格式,然后加载的。现在有一个问题,就是,我想能不能有方法改一下xtree,让<tree>标签里的action属性能够支持两个javascript,意思就是,现在可以写成
String action = "javascript:doPriCategoryAction('" + name +"')";
能不能够写成两种方法?一种是点击节点时跳转页面,另外一种是鼠标滑移到某一个节点时能够显示一些节点信息?
希望大家共同讨论。  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-03-26 00:28 ontology
请问怎么能在 点击+好按钮时候 生成需要的xml 然后再加载  回复  更多评论
  

# 怎么刷新树中选中的节点 2007-05-14 09:30 eboge
作者不知道还看得到不, 看到了请回一下, 如果我选中了某个节点,怎么样reload?我看了一下API, 好像只能刷新根节点(只有根节点有引用,其他的节点用的XML生成的,里面的都是SRC,没有引用可用)  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-06-30 12:38 kofman
学习:请问您的随机参数如何设置呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-06-30 12:39 kofman
@vincent_qiutian
学习:请问您的随机文件名如何设置呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-07-05 14:22 superpig
怎么在节点上加上右键菜单呢?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-07-10 10:22 chen bo
收藏了.....  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-07-13 20:33 luking
我现在做了一个树,有三层关系,怎么才能在页面打开时展开树的第二层节点的指定子节点?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-08-14 09:48 xxl
如何用数据库+javabean+jsp实现树形目录动态的增删改操作!
希望能向各位学习学习!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-09-19 14:04 Adair
请问,如何能对xloadtree2实现查找功能???即,关键的如何能获取一个结点的引用????大家知道吗???  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-10-18 16:23 lynnpeng
請問各位若使用在IE 7.0是否會有問題?我們會一直loading  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-10-22 09:19 创世纪计算机
最新版在IE7中好像没有问题呀,我前几天还试了一下~  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-10-22 10:25 nickey's home
@lynnpeng
嗯, 没问题, 我们最近刚用了.  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-11-13 16:54 leisure
这两天也在弄xloadtree,参考了楼主的一些方法,表示感谢.
有个疑问,再次展开树型节点时,上次选择的节点的状态仍然会保存,这是什么原理?为什么会这样?这两个js文件看得有些吃力,看来得在js上多花功夫才行  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2007-11-14 12:01 nickey's home
@leisure
对于浏览器中的缓存问题,有一个办法是,在请求的URL里面加上一个Ramdom数,js里面是Math.random();比如
var url="http://www.sohu.com/?r="+Math.random();

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树[未登录] 2008-01-10 12:27 oscar
nickey 你好
我有一个问题,我现在想模仿bbs.tol24.com的网站,但在过程中遇到一个问题
1.当初次加载页面时左侧树可以正常显示,也就是第一级目录可正常显示
+--文学
+--历史
+--科学
2.当点击某“一个”目录时其下级目录均可以正常显示
+--文学
+--中国文学
+--外国文学
+--历史
+--科学
3.以后除刚才打开的目录外,在点击任何目录就一直在loading...。也就是说只能打开一个目录,其余的都打不开

不知道这是什么原因  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树[未登录] 2008-01-10 12:28 oscar
nickey 你好
我有一个问题,我现在想模仿bbs.tol24.com的网站,但在过程中遇到一个问题
1.当初次加载页面时左侧树可以正常显示,也就是第一级目录可正常显示
+--文学
+--历史
+--科学
2.当点击某“一个”目录时其下级目录均可以正常显示
---文学
...+--中国文学
...+--外国文学
+--历史
+--科学
3.以后除刚才打开的目录外,在点击任何目录就一直在loading...。也就是说只能打开一个目录,其余的都打不开

不知道这是什么原因  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树[未登录] 2008-01-10 12:30 oscar
<script type="text/javascript">
var tree = new WebFXTree("Root","");tree.setTarget("content");

<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sTemp = "";
int i = 0;
String sql;

try{

sql = "select id,name from thin_directory where state = 1 and id like '__' order by sortid";
conn = dbpool.getConnection(10000);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);

while(rs.next())
{
sTemp = "var cat" + i + "= new WebFXLoadTreeItem(\"<font color=green>" + rs.getString("name") + "</font>\"" + ",\"node.jsp?id=" + rs.getString("id") + "\");";
//sTemp = "var cat" + i + "= new WebFXLoadTreeItem(\"<font color=green>" + rs.getString("name") + "</font>\"" + ",\"tree.xml\");";
out.println(sTemp);
out.println("cat" + i + ".setTarget(\"content\");");
out.println("tree.add(" + "cat" + i + ");");
i++;

}
}catch(Exception e)
{
out.println("left--->" + e.getMessage());
}
finally
{
stmt.close();
rs.close();
dbpool.freeConnection(conn);
conn = null;
}
%>

tree.write();
tree.expand();
</script>  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树[未登录] 2008-01-10 12:31 oscar
+++++node.jsp++++++++


<%
String id = request.getParameter("id");

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql;

out.println("<?xml version=\"1.0\" encoding=\"gbk\"?>");
out.println("<tree text=\"\">");

try{

sql = "select id,name from thin_directory where state = 1 and id like '" + id + "__' order by sortid";
conn = dbpool.getConnection(10000);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);

while(rs.next())
{
out.println(" <tree text=\"" + rs.getString("name") + "\" src=\"node.jsp?id=" + rs.getString("id") + "\" target=\"content\"/>");

}
}catch(Exception e)
{
out.println("node--->" + e.getMessage());
}
finally
{
stmt.close();
rs.close();
dbpool.freeConnection(conn);
conn = null;
}
out.println("</tree>");
out.close();

%>
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-01-15 11:17 nickey's home
@oscar
你可以装一个httpwatch来观察浏览器发送和获得的信息,来查看返回的内容是否正确.

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-01-16 11:36 cupid
<%@page contentType="text/xml;charset=GB2312" language="java" import="java.util.*"%>
<%@page pageEncoding="UTF-8"%>
<%
out.println("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
out.println("<tree>");
out.println("<tree text=\"中华人民共和\"/>");
out.println("<tree text=\"美国人差\"/>");
out.println("</tree>");
out.close();
%>
/////////////////////////////
我输入“中华人民共”奇数个汉字就出错,怎么回事啊?谢谢
偶数个汉字就好着呢!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-01-18 12:02 xpu
现在的xloadtree都是一次异步调用,再点第2次的时候就不去后台取数据了,如何实现每次展开时都进行异步调用? 谢谢!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-01-21 12:54 karlpan
nickey 你好
我有一个问题,是在大数据量分层加载的时候遇到,感到有些莫明其妙,请教于您!
-root (中国)
|---1 (北京)
|---2 (河北)
| |-----2.1 (唐山)
| |-----2.2 (秦皇岛)
| |-----2.3 (石家庄)
|---3 (山东)
| |-----3.1 (济南)
| | |-----3.1.1(历下取)
| |-----3.2 (青岛)
| |-----3.3 (潍坊)
我的树有40000多条数据,是跟当前国家的行政区划类似,当我做如下操作的时候便会有奇妙的事情发生。
点击3,加载数据,子树展开,然后点击3.1,加载数据,子树展开,然后点击3.1.1 触发this.action ,合上3.1,合上3(这个时候3的action变成了root的action,之后在点击3的时候便跟会focus在root上了,3不能被展开了)
这个事情在root下30多个省的最后几个发生,在前面的并不会发生,且不是必然的。我跟踪发现handleEvent: function (e) 在处理click时e发生了不正常的变化。
不知道您是否曾经遇到类似的问题?xloadtree在多级分层加载是否有着不稳定的问题?您对这种事情有什么建议么?
非常感谢

  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-01-22 14:21 karlpan
问题原因已经找到,是xloadtree在数据量非常大时的bug,事件响应之间的间隔时间太长!导致事件源出错!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-01-22 16:42 xpu
oscar 的问题怎么解决阿,请问?  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-06-09 23:22 j2sej2ee
小辉的问题我也遇到了,在firefox下面没有问题,在ie里面就不能加载xml文件。请问各位是怎么解决这个问题的啊  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-06-11 14:32 shengnba
在xloadtree中加右键菜单,不知道那位大虾做过啊....  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-09-03 00:10 luoyexian
我也遇到这样的问题.请大虾们指点下
# re: 分析xloadtree, 用ajax实现的动态目录树 2006-07-26 14:30 poplar
@nickey's home

怎么用随机参数啊?
我搞了一天也没有搞定,我是通过servlet从数据库中取数据,
但数据库数据更新了,但目录树怎么刷新也更新不了。
希望每次点击一个节点的时候能重新从数据库中取数据。
我用的web服务器是weblogic 8.14
# re: 分析xloadtree, 用ajax实现的动态目录树 2007-06-30 12:38 kofman
学习:请问您的随机参数如何设置呢?
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-10-20 17:08 logo
每次访问路径不同应该就可以了吧,比如后面加个xxx=new Date()之类的  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2008-11-16 21:41 wugang
nickey's home您好,看了您的文章受益匪浅。
我在使用xloadtree2的时候碰到这样一个问题:
1. 使用tree.add()方法时如果给节点名称设置中文输出就会是乱码,但是我页面的encoding已经是utf-8了
2. 如果加载节点时如果生成xml文件则显示中文为乱码,但是使用response输出xml不会有乱码,response输出我可以设定字符集为utf-8,想问的是用dom4j如何设定生成xml文档的encoding?
3. 我的树操作会牵扯到新增子节点,删除节点及移动节点的功能,是否每次操作成功后需要调用tree.reload()这个方法?我看到有个addNode的方法是否可以直接调用?
4. 想请问一下在树的节点不是很多(小于100)的情况下,是用生成xml文件的方法好还是直接读数据库从response返回的方法好?因为我的APP是使用了8台机器做级联的,如果一台挂了切换另一台而那上面的文档和原机器xml文档不一致那就比较讨厌了
望您可以抽空解疑,谢谢  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树[未登录] 2008-12-30 16:17
你好!我想问一下,怎么读取生成的xml文件
我在我的工程下,比如说 d:\aaa\bbb\ccc\tree.xml,xmlHttp.open("GET", sSrc, true)中的src该怎么写?
我查看了每次都生成tree.xml,但是xmlHttp.responseText和xmlHttp.responseXML读取的结果都是空字符串,不是null,这个问题该怎么解决?谢谢!  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2009-01-16 15:24 fang
我现在基本上是上面讨论的情况,可是我一点思路也没有?
能给点指导吗? 我的qq:313536145 ,希望能得到指导。  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2009-05-07 09:43 cag2050
哥们,如解决,给回复啊@roroya
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2009-12-15 14:17 xiaolong
为什么我用xloadtree的时候根目录可以。但是生成的子节点的src都不起作用。
如果把src拿出来单独访问。也是可以获得xml文件的。
我想请问一下为什么。可以给个解决方案吗?好像是子节点的src字段没有被触发。
  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2011-02-22 10:31 jiajunchao
xloadtree在struts2中使用,用IE6打开报脚本错误,里面的类找不到,哪位大侠能帮忙解决哈  回复  更多评论
  

# re: 分析xloadtree, 用ajax实现的动态目录树 2014-07-01 23:04 wuzhiwei
需要指定返回类型
response.setContentType("text/xml");  回复  更多评论
  

评论共2页: 1 2 下一页 

只有注册用户登录后才能发表评论。


网站导航: