<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 

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


    網站導航:
     
    主站蜘蛛池模板: 国产精品嫩草影院免费| 91精品国产免费久久久久久青草| 日韩高清免费观看| 亚洲成_人网站图片| 免费观看成人毛片a片2008| 日韩亚洲产在线观看| 久久不见久久见中文字幕免费| 亚洲大成色www永久网址| 免费在线观看的网站| 亚洲精品无码成人| 四虎免费永久在线播放| ssswww日本免费网站片| 中文字幕亚洲综合久久菠萝蜜| 中文字幕在线视频免费观看| 亚洲AV综合色区无码一区爱AV| 一区二区免费视频| 亚洲国产最大av| 免费h成人黄漫画嘿咻破解版| 特级毛片aaaa免费观看 | 免费的一级黄色片| 国产午夜亚洲精品不卡电影| 自拍偷自拍亚洲精品第1页| 免费精品一区二区三区第35| 亚洲另类春色国产精品| 日本免费人成视频播放| 久久成人永久免费播放| 噜噜噜亚洲色成人网站∨| 午夜网站免费版在线观看| 未满十八私人高清免费影院| 亚洲AV乱码久久精品蜜桃| 免费视频爱爱太爽了| 国产午夜亚洲精品不卡电影| 亚洲av福利无码无一区二区| 成年在线观看网站免费| 一级做a爰片久久毛片免费看| 亚洲精品福利视频| 国产精品酒店视频免费看| 国偷自产一区二区免费视频| 亚洲日韩国产欧美一区二区三区 | 久久精品a一国产成人免费网站| 麻豆91免费视频|