前两次我介绍了静态树和根据数据库加载的数据生成的树,今天我就把ExtJS Tree这剩的一些主要的东西说一说,剩下的主要就是:树的事件处理、可编辑的树和可拖拽的树,最后再实现一下异步加载的树。

    

树的事件处理

     

     树的事件主要有:1、展开节点事件。2、折叠节点事件。3、单击节点事件。4、双击节点事件。下面我们以一个静态树来测试树的主要事件。

 

     由于单击和双击有冲突,所以我们在测试的时候可以先注释掉一个,单独测试。

 

 可编辑的树

     

     有了前面我们ExtJS的基础我就直接上代码了。简单的功能我都在代码的注释里写了。

      下面的例子中都会用到TreeNodeServlet.java这个类所以我把这个代码也贴出来。


 


 可拖拽的树

 

        

 

异步加载树

 

        异步加载树是非常常用的,因为我们页面上生成的树往往都是从数据库中查出来的数据,有时候我们的数据量很大,如果每次都全加载那么很浪费资源,所以我们就用到了异步加载的树。所谓异步加载的树就是:我们点击哪个节点,就只加载这个节点下的元素,并不查询其他元素。但数据量大,并且树的层次特别多的时候就非常好用了,下面我们就实现一个异步加载的树。我将所有代码都粘出来,方便大家直接运行测试。

 

     1、准备数据库的数据。这个我们就用在第二节给的数据就可以了。

     2、vo也就是JavaBean的写法,我们也在第二节将过了,下面是代码。

     3、接着是查询的DAO,其实也和第二节的差不多,只不过第二节用的是查询所有,而这里我们只是查询点击的节点下的数据,所以我们就根据传递过来的id进行查询部分数据进行显示。

     这里涉及到了另外一个工具类,就是连接数据库用的类,这个非常简单大家都应该没有问题。

     4、然后是servlet,servlet里我们也简单的处理一下,就是接收一下页面传递过来的节点id,并根据这个id查询数据。

    

     5、下面就是页面js文件了。


     这样整个异步加载的树也就完成了。完成了异步加载的树,那么ExtJS Tree这块的主要内容也就差不多了,还有一些细节大家研究研究就可以了。如果哪有错误或不足希望指出。

 posted on 2011-03-16 18:24  SunnyYue  阅读(138)  评论(0编辑  收藏  举报