<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鄧華

    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 鄧華的碎碎念 閱讀(27881) 評論(113)  編輯  收藏
    評論共2頁: 上一頁 1 2 

    Feedback

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-15 16:28 zzb
    你好,我從google里搜到你這篇文章,我也在網站上下了一個xloadtree的包.
    我做了一個把數據庫中取得的結果生成xml文件,在使用xloadtree,可以用.
    我想請教你怎樣可以取得節點的信息,因為當我取到了節點的信息,我可以通過該信息到數據庫查找該節點包含的子節點并顯示.
    我說的可能不是太清楚,你能理解我的意思嗎?可以告訴我一個解決的辦法嗎?  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-15 23:25 nickey's home
    嗯? 你的意思是動態加載一個節點么? xloadtree就是干這個的. 你可以參考bbs.tol24.com 網站的左側樹實現.  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-16 10:24 zzb
    是的,我是想動態加載一個節點,
    我的想法如下
    -root
    |
    |---1
    |
    |---2
    | |
    | |-----2.1
    | |-----2.2
    | |-----2.3
    |
    |---3
    | |
    | |-----3.1
    | |-----3.2
    | |-----3.3

    在這個里面,當我點擊節點2的時候,應該可以出現子節點2.1,2.2,2.3;點擊節點3出現3的子節點,這樣我需要判斷鼠標點擊的是節點2還是節點3在去生成對應的子節點.

    var rti;
    var tree = new WebFXTree("Root");
    tree.add(new WebFXTreeItem("1"));
    tree.add(new WebFXLoadTreeItem("2", "2.xml"));
    tree.add(new WebFXLoadTreeItem("3", "3.xml"));
    在這段代碼中,testtree.xml這個地方必須指定一個xml的文件,我試過把
    tree.add(new WebFXLoadTreeItem("2", "2.xml"));
    改為
    tree.add(new WebFXLoadTreeItem("2", "2.jsp?id=2"));
    ,通過2.jsp來生成節點2的子節點,這些節點都是從數據庫取出來的,但這樣就會報錯,所以我現在只能自己寫一個2.jsp的程序來生成2.xml文件,這樣的話就導致了這個樹不是動態的生成.
    我這樣說你可以理解嗎,我想請教你我這個程序是不是寫的有問題,或者思路本身就是不對的.謝謝你的回復.  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-16 10:33 zzb
    我看了你說的那個網站,它里面用到了xtree2.css,xtree2.js,xloadtree2.js,我下載的xloadtree里沒有這些文件,我把它們下載下來放到本地,測試那個網站的程序,

    var tree = new WebFXTree("酷學社區","forumIndex.jspa");
    tree.setTarget("content");

    提示:無法識別setTarget該方法.我看了WebFXTree的api也沒有這個方法,

    var category119=new WebFXLoadTreeItem("直播課堂", "forumTreeControl!load.jspa?treeNode=119","category.jspa?categoryID=119");
    category119.setTarget("content");
    tree.add(category119);

    上面這段代碼,我的理解是,
    節點名稱:直播課堂
    生成節點的文件:forumTreeControl!load.jspa?treeNode=119
    action:category.jspa?categoryID=119
    setTarget是將action的路徑在網頁的哪個位置打開
    這樣理解對嗎?
    如果這樣理解正確的話,
    tree.add(new WebFXLoadTreeItem("esport", "node.jsp?nodeid=2"));
    這樣寫就是沒有問題的.是這樣的嗎?  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-16 11:15 zzb
    好了,我已經解決了這個問題,其實我只需要用jsp來生成一個xml文件即可,這樣tree.add(new WebFXLoadTreeItem("esport", "node.jsp?nodeid=2"));就可以用了.  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-16 12:03 nickey's home
    呵呵.整體思想還是很簡單的.  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-21 16:36 hzqghost
    請問,我想點擊一個節點時關閉其他所有打開的節點,要怎么修改  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-22 11:51 jeafcn
    已經在項目中使用了!  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-27 19:03 wds
    遇到的兩個問題:

    1、我點開3個目錄,那么重新load的時候,這三個目錄自動展開。能不能自動展開最后一個,而不是全部3個,或者都不展開。

    2、加載子目錄的xml,里面的對象名稱該怎么取,因為刷新之后我想把焦點還定位到已選擇的目錄。  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-27 21:03 cookie
    他的cookie在哪里放著呀?  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-29 14:38 lip199162
    tree.add(new WebFXLoadTreeItem("esport", "node.php?nodeid=2"));

    我是按這種方法引用的,這里有幾個問題想請教一下:

    1.我的node.php可以生成我想要的XML而且格式沒有問題,但這里 esport 結點不會展開,只出現一個沒有任何內容的對話框,很郁悶。

    2.我對XML文件不了解,沒用過,下面是我的XML請教一下:

    <?xml version="1.0"?>
    <tree>
    <tree text="1sub" action="plist.php" target="main"/>
    </tree>

    這個XML沒有問題,但如果我改成
    <tree text="中文" action="plist.php" target="main"/>
    這時就出問題了,問題就出在中文字符上,難道它不支持中文?

    如果我改成
    <tree text="1sub" action="plist.php?mid=3&sid=6" target="main"/>
    這時也出現了問題,錯誤信息顯示 應有分號 實在不明白。

    以上兩點,請教一下,謝謝。

      回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-29 16:38 nickey's home
    TO lip199162

    1) WebFXLoadTreeItem 這個我是用的三個參數. 沒有出現問題.
    這樣 : new WebFXLoadTreeItem("<%=category.getName()%>", "forumTreeControl!load.jspa?treeNode=<%=category.getID()%>","category.jspa?categoryID=<%=category.getID()%>");

    2) 可能和你網頁的編碼有關...  回復  更多評論
      

    # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-29 18:07 lip199162
    TO nickey's home

    非常感謝你的幫助,關于我的第二個問題已經在你的幫助下解決了,謝謝你.

    還是第一個問題,你提供的方法,可不可以詳細些呀?

    更重要的是 forumTreeControl!load.jspa

    category.jspa 這兩個文件是做什么用的,內容如何呀?

    其實我的問題是,可以用 node.php?nodeid=2 生成相關 XML 文件, 但生成的XML如何才會自動被 WebFXLoadTreeItem 讀入,調用呀?

    謝謝你了  回復  更多評論
      

    評論共2頁: 上一頁 1 2 

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产美女无遮挡免费视频网站 | 国产在线不卡免费播放| 亚洲永久中文字幕在线| 97公开免费视频| 亚洲日本国产精华液| www.黄色免费网站| 亚洲高清有码中文字| 日韩激情淫片免费看| 精品久久亚洲中文无码| 国内自产少妇自拍区免费| 亚洲av永久无码精品网址| 亚洲av午夜精品一区二区三区| 亚洲AV无码日韩AV无码导航| 国产免费一区二区三区不卡| 久久亚洲AV成人无码| 免费下载成人电影| 日韩亚洲综合精品国产| 亚洲一级特黄无码片| 一级成人a毛片免费播放| 亚洲a级在线观看| 全黄a免费一级毛片人人爱| 中文日本免费高清| 亚洲黄色三级视频| 免费观看一级毛片| 曰韩无码AV片免费播放不卡| 亚洲AV日韩AV永久无码绿巨人| 黄色免费网站在线看| 亚洲乱码国产乱码精品精| 日本黄网站动漫视频免费| 亚洲国产精品精华液| 亚洲一区二区三区影院| 美女被cao免费看在线看网站| 亚洲国产精品久久久天堂 | EEUSS影院WWW在线观看免费| 国产成人综合亚洲亚洲国产第一页| 亚洲欧美中文日韩视频| 国产亚洲精品精品国产亚洲综合 | 亚洲AV无码成人精品区在线观看| 小说区亚洲自拍另类| 久久亚洲伊人中字综合精品| 国产精品视频免费一区二区|