JAVA涂鴉
          關于JAVA的點點滴滴
          posts - 50,  comments - 689,  trackbacks - 0

          ?? 樹型菜單可以說是項目中應用最為廣泛的運用。以前無論使用微軟控件的樹型,還是比較優秀的阿賴樹型,都是將數據全部讀出,然后再分級顯示。這樣如果數據量大,那么第一次顯示將需要客戶等待很長一段時間,降低了客戶的體驗度。如今使用ajax,事情變得簡單了。

          ?? 此運用參考了《征服web2.0開發技術詳解》的例子。

          ???我使用的平臺是struts+spring+hibernate,但與ajax打交道的也就是struts。我無法將整個代碼貼出來,因此把重要的前臺ajax代碼貼出來,至于后臺的代碼就看你自己所使用的技術了。

          1、jsp頁面

          <% @?page?language = " java " ?contentType = " text/html;?charset=GB2312 " ? import = " java.util.*,com.wehave.oa.cecontract.model.TbJyhtflb " %>
          < html >
          < head >
          < title > Insert?title?here </ title >
          < link?rel = " stylesheet " ?href? = ? " ../css/tree.css " >??
          <script?type="text/javascript"?src="../js/tree_htfl.js"></script>
          <script?languge="javascript">
          ????function?ShowDetail(ID,NAME,FLAG)
          {
          ????????window.parent.right.location?
          ="getContract.go?method=doGetContract&folderID="?+ID?+?"&&folderName="+NAME+"&&flag="+FLAG;
          ????}

          </script>
          </head>
          <body?bgcolor="#F6F9FF">
          <tbody>
          <table?cellpadding="0"?cellspacing="0"?width="300"?>
          ?
          <div?id="load"?style="display:none">?<img?src="../images/tree_loading.gif">Loading?data..</div>
          <ul?class="tree">
          <%??List?treeList?=?(List)request.getAttribute("treefolder");
          ????Iterator?it
          =treeList.iterator();
          ????
          while(it.hasNext()){
          ????????out.println(it.next().toString());
          ????}

          %>
          </table>
          </tbody>
          </body>
          </html>

          2、tree_htfl.js 代碼
          function?showHide(?id?)
          {
          ??var?el
          =?document.getElementById(?id?);
          ??var?bExpand?
          =?true;
          ??var?images?
          =?el.getElementsByTagName("IMG");
          ??
          if?(images[0].src.indexOf("tree_minus.gif")!=-1)
          ??
          {
          ????bExpand?
          =?false;
          ????images[
          0].src="../images/tree_plus.gif";
          ??}
          else{
          ????images[
          0].src="../images/tree_minus.gif";
          ??}

          ??var?subs
          =el.lastChild;
          ??
          if(bExpand)
          ????subs.style.display
          ="block";
          ??
          else
          ????subs.style.display
          ="none";
          }


          function?getSubTree(?id?,submitURL)
          {
          ??var?submitURL
          =submitURL
          ??postXmlHttp(?submitURL,?
          'parseSubTree("'+id+'")'?,'load("'+id+'")');
          }

          function?parseSubTree(id)
          {
          ??var?el
          =?document.getElementById(?id?);
          ??var?ulElmt
          =?document.createElement("UL");
          ??ulElmt.innerHTML
          =_xmlHttpRequestObj.responseText;
          ??el.appendChild(ulElmt);
          ??var?images?
          =?el.getElementsByTagName("IMG");
          ??images[
          0].setAttribute("src",?"../images/tree_minus.gif");
          ??images[
          0].setAttribute("onclick",?new?Function("showHide('"+id+"')"));
          ??var?aTag?
          =?el.getElementsByTagName("A");
          ??aTag[
          0].setAttribute("onclick",?new?Function("showHide('"+id+"')"));
          ??var?loadDiv
          =?document.getElementById(?"load"?);
          ??loadDiv.style.display
          ="none";
          }


          function?load(id)
          {
          ?var?loadDiv
          =?document.getElementById(?"load"?);
          ?loadDiv.style.display
          ="block";
          }


          var?_postXmlHttpProcessPostChangeCallBack;
          var?_xmlHttpRequestObj;
          var?_loadingFunction;

          function?postXmlHttp(?submitUrl,?callbackFunc?,loadFunc)
          {
          ??_postXmlHttpProcessPostChangeCallBack?
          =?callbackFunc;
          ??_loadingFunction?
          =?loadFunc;
          ??
          if(window.createRequest)
          ??
          {
          ????
          try{
          ??????_xmlHttpRequestObj
          =window.createRequest();
          ??????_xmlHttpRequestObj.open(
          'POST',submitUrl,true);
          ??????_xmlHttpRequestObj.onreadystatechange
          =postXmlHttpProcessPostChange;
          ??????_xmlHttpRequestObj.send();
          ????}

          ????
          catch(ee){}
          ??}

          ??
          else?if(window.XMLHttpRequest)
          ??
          {
          ????_xmlHttpRequestObj
          =new?XMLHttpRequest();
          ????_xmlHttpRequestObj.overrideMimeType(
          'text/xml');
          ????_xmlHttpRequestObj.open(
          'POST',submitUrl,true);
          ????_xmlHttpRequestObj.onreadystatechange
          =postXmlHttpProcessPostChange;
          ????_xmlHttpRequestObj.send(
          "");
          ??}

          ??
          else?if(window.ActiveXObject)
          ??
          {
          ????_xmlHttpRequestObj
          =new?ActiveXObject("Microsoft.XMLHTTP");
          ????_xmlHttpRequestObj.open(
          'POST',submitUrl,true);
          ????_xmlHttpRequestObj.onreadystatechange
          =postXmlHttpProcessPostChange;
          ????_xmlHttpRequestObj.send();
          ??}

          }
          ;

          function?postXmlHttpProcessPostChange(?)
          {
          ??
          if(?_xmlHttpRequestObj.readyState==4)
          ??
          {
          ??????
          if(_xmlHttpRequestObj.status==200){
          ????????setTimeout(?_postXmlHttpProcessPostChangeCallBack,?
          2?);
          ????}
          else{
          ????????alert(_xmlHttpRequestObj.status);
          ????}

          ??}

          ??
          if?(?_xmlHttpRequestObj.readyState==1?)
          ??
          {
          ????setTimeout(?_loadingFunction,?
          2?);
          ??}

          }

          3、action代碼

          /**
          ?????*?展開第一層目錄
          ?????
          */

          ????
          public?ActionForward?doGetFolderList(
          ????????????ActionMapping?mapping,
          ????????????ActionForm?form,
          ????????????HttpServletRequest?req,
          ????????????HttpServletResponse?res)
          {
          ????????List?list?
          =?treeCatalogService.getChildren("0");
          ????????List?TreeFolder
          =new?ArrayList();
          ????????Iterator?it
          =list.iterator();
          ????????
          while(it.hasNext()){
          ????????????TbJyhtflb?htfl
          =(TbJyhtflb)it.next();
          ????????????String?s
          =treeCatalogService.renderTreeViewAjax(htfl);
          ????????????TreeFolder.add(s);
          ????????}

          ????????req.setAttribute(
          "treefolder",TreeFolder);
          ????????
          return?mapping.findForward("foldertree");
          ????}

          ????
          ????
          /**
          ?????*?展開下級目錄
          ?????
          */

          ????
          public?ActionForward?doGetSubFolderList(
          ????????????ActionMapping?mapping,
          ????????????ActionForm?form,
          ????????????HttpServletRequest?req,
          ????????????HttpServletResponse?res)
          {
          ????????String?parentID?
          =?req.getParameter("parentID");?//獲得id的值
          ????????if?(parentID!=null&&!parentID.equals("")){?//如果不為null和空
          ????????????res.setContentType("text/html;charset=GB2312");
          ????????????List?list?
          =?treeCatalogService.getChildren(parentID);
          ????????????Iterator?it
          =list.iterator();
          ????????????
          try?{
          ????????????????PrintWriter?out
          =?res.getWriter();
          ????????????????
          while(it.hasNext()){
          ????????????????????TbJyhtflb?htfl
          =(TbJyhtflb)it.next();
          ????????????????????out.println(treeCatalogService.renderTreeViewAjax(htfl));
          ????????????????}

          ????????????????out.close();
          ????????????}
          catch(Exception?e){
          ????????????????e.printStackTrace();
          ????????????}

          ????????}

          ????????
          return?null;
          ????}

          4、service層代碼
          /**
          ?????*?函數說明:展開目錄
          ?????*?參數說明:?目錄對象
          ?????*?返回值:展開目錄的HTML代碼
          ?????
          */

          ????
          public?String?renderTreeViewAjax(TbJyhtflb?htfl)?{
          ????????StringBuffer?content?
          =?new?StringBuffer();
          ????????String?ID
          =htfl.getTbJyhtflbZlId();
          ????????String?NAME
          =htfl.getTbJyhtflbMc();
          ????????String?FLAG
          =htfl.getTbJyhtflbLb();
          ????????content.append(
          "<li?id='"+ID+"'>");
          ????????
          if?(treeCatalogDAO.canExpand(ID))
          ????????????content.append(
          "<img?src=../images/tree_plus.gif?onClick=\"getSubTree('"+ID+"')\">");
          ????????
          else
          ????????????content.append(
          "<img?src=../images/tree_blank.gif>");
          ????????content.append(
          "<img?src=../images/tree_folder.gif><a?href=\"javascript:ShowDetail('"+ID+"','"+NAME+"','"+FLAG+"')\"");
          ????????
          if?(treeCatalogDAO.canExpand(ID)){
          ????????????String?submitURL
          ="getFolderList.go?method=doGetSubFolderList&parentID="+ID;
          ????????????content.append(
          "?onClick=\"getSubTree('"+ID+"',submitURL)\"");
          ????????}

          ????????content.append(
          ">"+NAME+"</a>");
          ????????
          ????????content.append(
          "</li>");
          ????????
          return?content.toString();
          ????}

          5、tree.css代碼:
          ????p{
          ????????font
          -family:arial;
          ????????
          ????}

          ????a
          {
          ????????color:#
          000;
          ????????font
          -family:arial;
          ????????font
          -size:0.8em;
          ????}

          ????
          ????.tree
          {
          ????????margin:0px;
          ????????padding:0px;
          ????}

          ????.tree?ul
          {????/*子結點*/
          ????????margin
          -left:20px;????/*?Left?spacing?*/
          ????????padding
          -left:0px;
          ????}

          ????.tree?li
          {????/*?結點?*/?
          ????????list
          -style-type:none;
          ????????vertical
          -align:middle;
          ????????
          ????}

          ????.tree?li?a
          {????/*?結點連接?*/
          ????????color:#
          000;
          ????????text
          -decoration:none;
          ????????font
          -family:arial;
          ????????font
          -size:0.8em;
          ????????padding
          -left:2px;
          ????}

          代碼基本就是這樣了,希望對大家有用。
          posted on 2006-07-24 10:03 千山鳥飛絕 閱讀(13865) 評論(54)  編輯  收藏 所屬分類: Ajax

          FeedBack:
          # re: 運用ajax技術的樹型菜單
          2006-07-24 12:41 | cctv
          能共享一下源文件嗎?li98311@etang.com非常感謝  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-07-24 13:03 | Shooper.Java
          # re: 運用ajax技術的樹型菜單
          2006-07-26 16:07 | inber
          希望能看一下你的展示程序,如果可能能發份代碼嗎:)
          inber520@yahoo.com.cn  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-07-26 17:58 | Vycon
          可以發給我一份源代碼嗎?多謝了!

          vycon@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-07-27 09:05 | 千山鳥飛絕
          不知道大家需要的源碼是什么,是《征服》里源碼嗎?

          因為我這是項目中的代碼,所以不可能是一個很完整的可以直接copy下來就運行的,但我還是將最重要的代碼給貼出來了。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-07-31 14:54 | 呵呵
          可否把tree.css的代碼發上來?謝謝  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-07-31 16:37 | zJun's帛羅閣
          是怎么構造樹的呢?是在tree_ajax.js和tree_htfl.js中嗎?哪里可以找到這兩個文件呢,這兩個文件所有的內容就是文章中提供的js文件的內容嗎?最好能提供這兩個文件的代碼。現在這樣看有點摸不著頭腦。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-08-01 09:14 | 千山鳥飛絕
          我重新修改了一下,提交了tree.css代碼。
          另外tree_ajax.js是不需要的,我已經刪除。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-08-15 11:10 | 新新人類
          把你代碼能否共享一下,謝謝

          wuxj888@yahoo.com.cn  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-08-16 10:48 | ccyy
          ccyy978@126.com
          謝謝樓主  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-08-31 04:05 | 糊里糊涂啊糊里糊涂
          感謝,研究下先

          service層代碼 里邊包含了太多的 html 了吧?這樣想要修改下樣式還要對service里邊動刀,感覺不太妥當!  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-09-04 15:34 | dingqf
          dingqf@sttri.com.cn
          謝謝摟住,我要生成個5k個節點的樹!  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-09-07 13:14 | kerbs
          ajax沒推出之前,也用過這樣顯示,這樣顯示的問題是點擊展開菜單的時候,如數據量大用戶還是要等一段時間。
          而全部讀出分級顯示只是第一次等待而已,以后則很快。各有利弊吧  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-09-13 13:37 | 千山鳥飛絕
          這樣顯示的問題是點擊展開菜單的時候,如數據量大用戶還是要等一段時間。
          ================================
          這是數據量相當大才會出現這種情況。如果一個子目錄下都有這么多信息,那么整個目錄一起讀取將會等待多久呢。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-09-13 13:38 | 千山鳥飛絕
          service層代碼 里邊包含了太多的 html 了吧?這樣想要修改下樣式還要對service里邊動刀,感覺不太妥當!
          =============================
          確實是這樣,希望大家共同研究。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-10-07 10:10 | 哈哈哈
          《征》作者原來是images[0].setAttribute("onclick", "showHide('"+id+"')")這樣寫的,是不對的。

          應該是images[0].setAttribute("onclick", new Function("showHide('"+id+"')"))。

          以上大家注意了  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-10-08 14:39 | 千山鳥飛絕
          @哈哈哈

          《征》所用的方法適合firefox這類瀏覽器。而如果要兼容IE瀏覽器就必須new Function了。

            回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-11-24 13:22 | 213123
          123123123  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2006-12-21 11:16 | cory
          能否發一下源碼  qq522540@gmail.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-01-28 11:06 |
          可否發一封給我啊,wangguan_xd@126.com。先謝過了!  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2007-03-23 08:18 | 幽幽
          樓主,可否也給我一份代碼,樹的

          謝謝了

          aprilsuny@163.com 非常感謝!希望你能看到  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-03-24 09:06 | 千山鳥飛絕
          因為這是寫在項目中的代碼,所以無法給大家。

          等下次那天有空,做個單獨的DEMO,讓大家下載。

          我的這個樹是參考了《征服web2.0開發技術詳解》書中的例子。大家也可以去看看這本書。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-06-05 11:36 | jick
          這個還不錯,謝了。不過有沒更先進一點的啊。
          如果有,幫忙發過來。yinhui.java@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-06-08 13:58 | 天路
          謝謝,學習中

          wfjvip@126.com

          請共享一份。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-06-12 11:32 | 臥石荷花
          好東西,樓主分享一份
          hehua513@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-06-12 11:32 | 臥石荷花
          謝謝  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-08-14 15:14 | pn2007
          能否發一份源碼?謝謝! sailsoft@tom.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2007-08-28 14:48 | java愛好者
          樓主,
          能否給我發一份源代碼呀?
          我很需要那,,,,,
          希望能得到你的回復,,,,
          先謝謝了。。。。。。
          我的郵箱:wfj587@126.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-10-01 14:19 | 守望者
          迫切希望樓主能整理下,共享下!謝謝
          zhouliming-521@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2007-10-19 16:26 | jacky
          請發到我郵箱來 frank18@126.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-10-19 18:07 | 創世紀計算機
          這種很不錯,現在已經出來好幾種了,各有所長~  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-10-21 16:03 | rjw
          我也迫切需要 可以的話發我一份 rennuoting@126.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-11-18 16:09 | jon
          我也需要 可以的話發我一份 joney_110@163.com   回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2007-12-09 19:28 | 獵人
          能給我發一份源代碼嗎?謝謝了
          nxzn2008@hotmail.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-02-06 21:00 |
          請問一下要把《征服》的代碼放到IE下為什么就不能使用動態樹了呢?我已經加了new Function()了,但是還是只能在firefox下使用,而不能在IE下使用,請問大家有沒有碰到這種情況的 啊?謝謝指教一下。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-02-06 21:02 |
          在這里主要是不理解:String submitURL="getFolderList.go?method=doGetSubFolderList&parentID="+ID;
          這一句,在征服里面用的是treeview?parentID+ID,但是在整個war文件里面沒有看到treeview為名的文件。勞煩各位幫幫忙解決一下。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-03-13 09:31 | satanc
          function postXmlHttp( submitUrl, callbackFunc ,loadFunc)
          {
          _postXmlHttpProcessPostChangeCallBack = callbackFunc;
          _loadingFunction = loadFunc;
          if(window.createRequest)
          {
          try{
          _xmlHttpRequestObj=window.createRequest();
          _xmlHttpRequestObj.open('POST',submitUrl,true);
          _xmlHttpRequestObj.onreadystatechange=postXmlHttpProcessPostChange;
          _xmlHttpRequestObj.send();
          }
          catch(ee){}
          }
          else if(window.XMLHttpRequest)
          {
          _xmlHttpRequestObj=new XMLHttpRequest();
          _xmlHttpRequestObj.overrideMimeType('text/xml');
          _xmlHttpRequestObj.open('POST',submitUrl,true);
          _xmlHttpRequestObj.onreadystatechange=postXmlHttpProcessPostChange;
          _xmlHttpRequestObj.send("");
          }
          else if(window.ActiveXObject)
          {
          _xmlHttpRequestObj=new ActiveXObject("Microsoft.XMLHTTP");
          _xmlHttpRequestObj.open('POST',submitUrl,true);
          _xmlHttpRequestObj.onreadystatechange=postXmlHttpProcessPostChange;
          _xmlHttpRequestObj.send();
          }
          };

          函數中沒有增加對瀏覽器的判斷,比如在IE7下樹就打不開,  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-03-13 15:22 | 千山鳥飛絕
          @satanc
          ajax對ie7的兼容性確實不好。

          這個樹形,我已經改為適合ie7的結構了。下次更新一下。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-05-05 10:29 | hz
          摟主能不能給我發一份有關jsp樹型菜單的源碼啊,不勝感謝!!!
          boy_33@163.com
          謝謝了!!!  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-05-10 22:56 | bbq
          樓主能把實現整個樹型菜單的代碼發給我嗎,小弟感激不盡!  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-05-10 22:57 | bbq
          樓主能把實現整個樹型菜單的代碼發給我嗎,小弟感激不盡!
          bbqlove2008@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-05-28 11:14 | nevi
          學習中,樓主能把實現整個樹型菜單的代碼發給我嗎?感激不盡! 郵箱是:somethingtodo@163.com,謝謝了。  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-06-12 08:05 | xieamao
          能否給我也發一份源代碼,感激不盡。
          郵箱:xpf7622@hotmail.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-06-23 14:30 | luoyexian
          能否也給我一分源碼.非常感謝e-mail:luoyexian@163.com
            回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-06-24 15:55 | luoyexian
          請問這段代碼是怎么理解?我看不懂.可以解析下嗎?
          兩個if是不是重疊了?
          if (treeCatalogDAO.canExpand(ID))
          content.append("<img src=../images/tree_plus.gif onClick=\"getSubTree('"+ID+"')\">");
          else
          content.append("<img src=../images/tree_blank.gif>");
          content.append("<img src=../images/tree_folder.gif><a href=\"javascript:ShowDetail('"+ID+"','"+NAME+"','"+FLAG+"')\"");
          if (treeCatalogDAO.canExpand(ID)){
          String submitURL="getFolderList.go?method=doGetSubFolderList&parentID="+ID;
          content.append(" onClick=\"getSubTree('"+ID+"',submitURL)\"");
          }
          content.append(">"+NAME+"</a>");
            回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-07-15 16:20 | Cherry
          能否也給我一分源碼.非常感謝e-mail:cherryxiangyi@gmail.com
          我嘗試自己做,可是還有一些部分不明白,所以希望能看看你的源碼加以研究,謝謝
            回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-09-13 19:00 | chip
          能否也給我一分源碼.非常感謝e-mail:aixroot@163.com
            回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2008-11-23 20:31 | 孫利超
          能不能也給我一份那?
          非常感謝 slchao123@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2009-03-08 15:24 | echo
          能不能給我發一份,我的郵箱是psyche19830113@163.com
          謝謝!  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2009-03-19 23:24 | wade
          調試了一下,下面這個方法有點錯誤:
          ==================================================
          /** *//**
          * 函數說明:展開目錄
          * 參數說明: 目錄對象
          * 返回值:展開目錄的HTML代碼
          */
          public String renderTreeViewAjax(TbJyhtflb htfl) {
          StringBuffer content = new StringBuffer();
          String ID=htfl.getTbJyhtflbZlId();
          String NAME=htfl.getTbJyhtflbMc();
          String FLAG=htfl.getTbJyhtflbLb();
          content.append("<li id='"+ID+"'>");
          if (treeCatalogDAO.canExpand(ID))
          content.append("<img src=../images/tree_plus.gif onClick=\"getSubTree('"+ID+"')\">");
          else
          content.append("<img src=../images/tree_blank.gif>");
          content.append("<img src=../images/tree_folder.gif><a href=\"javascript:ShowDetail('"+ID+"','"+NAME+"','"+FLAG+"')\"");
          if (treeCatalogDAO.canExpand(ID)){
          String submitURL="getFolderList.go?method=doGetSubFolderList&parentID="+ID;
          content.append(" onClick=\"getSubTree('"+ID+"',submitURL)\"");
          }
          content.append(">"+NAME+"</a>");

          content.append("</li>");
          return content.toString();
          }
          ==============================================
          正確的寫法是:

          /** *//**
          * 函數說明:展開目錄
          * 參數說明: 目錄對象
          * 返回值:展開目錄的HTML代碼
          */
          public String renderTreeViewAjax(TbJyhtflb htfl) {
          StringBuffer content = new StringBuffer();
          String ID=htfl.getTbJyhtflbZlId();
          String NAME=htfl.getTbJyhtflbMc();
          String FLAG=htfl.getTbJyhtflbLb();
          content.append("<li id='"+ID+"'>");
          if (treeCatalogDAO.canExpand(ID)) {
          String submitURL="getFolderList.go?method=doGetSubFolderList&parentID="+ID;
          content.append("<img src=../images/tree_plus.gif onClick=\"getSubTree('"+ID+"','"+submitURL+"')\">");
          }
          else {
          content.append("<img src=../images/tree_blank.gif>");
          }
          content.append("<img src=../images/tree_folder.gif><a href=\"javascript:ShowDetail('"+ID+"','"+NAME+"','"+FLAG+"')\"");

          content.append(">"+NAME+"</a>");

          content.append("</li>");
          return content.toString();
          }  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2009-03-20 10:03 | wade
          要代碼的到這里下:
          http://wei-jing.javaeye.com/blog/351995  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單
          2009-04-13 18:01 | 謝華鋒
          你好能發一份程序代碼給我嗎? 太謝謝了````郵箱地址xiehuafeng880530@163.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2009-07-31 17:14 | a
          mmh_hudy@126.com  回復  更多評論
            
          # re: 運用ajax技術的樹型菜單[未登錄]
          2011-08-29 13:32 | justin
          能發一份源代碼給我嗎?謝謝樓主~bxiong@hp.com  回復  更多評論
            
          正在閱讀:



          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 775355
          • 排名 - 56

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 电白县| 房山区| 广宗县| 普陀区| 巴中市| 文成县| 沅陵县| 临夏县| 商洛市| 昭觉县| 武隆县| 汕头市| 孟州市| 江都市| 仙游县| 聂拉木县| 小金县| 宁化县| 曲麻莱县| 阳谷县| 武川县| 新田县| 隆化县| 兴山县| 汾阳市| 洛宁县| 米脂县| 沿河| 金门县| 当雄县| 唐山市| 青冈县| 遂平县| 新田县| 贺州市| 曲靖市| 京山县| 新干县| 龙井市| 乌拉特后旗| 固镇县|