JAVA涂鴉
          關(guān)于JAVA的點(diǎn)點(diǎn)滴滴
          posts - 50,  comments - 689,  trackbacks - 0

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

          ?? 此運(yùn)用參考了《征服web2.0開(kāi)發(fā)技術(shù)詳解》的例子。

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

          1、jsp頁(yè)面

          <% @?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代碼

          /**
          ?????*?展開(kāi)第一層目錄
          ?????
          */

          ????
          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");
          ????}

          ????
          ????
          /**
          ?????*?展開(kāi)下級(jí)目錄
          ?????
          */

          ????
          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層代碼
          /**
          ?????*?函數(shù)說(shuō)明:展開(kāi)目錄
          ?????*?參數(shù)說(shuō)明:?目錄對(duì)象
          ?????*?返回值:展開(kāi)目錄的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
          {????/*子結(jié)點(diǎn)*/
          ????????margin
          -left:20px;????/*?Left?spacing?*/
          ????????padding
          -left:0px;
          ????}

          ????.tree?li
          {????/*?結(jié)點(diǎn)?*/?
          ????????list
          -style-type:none;
          ????????vertical
          -align:middle;
          ????????
          ????}

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

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

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

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

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

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

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

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

          以上大家注意了  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2006-10-08 14:39 | 千山鳥(niǎo)飛絕
          @哈哈哈

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

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

          謝謝了

          aprilsuny@163.com 非常感謝!希望你能看到  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-03-24 09:06 | 千山鳥(niǎo)飛絕
          因?yàn)檫@是寫(xiě)在項(xiàng)目中的代碼,所以無(wú)法給大家。

          等下次那天有空,做個(gè)單獨(dú)的DEMO,讓大家下載。

          我的這個(gè)樹(shù)是參考了《征服web2.0開(kāi)發(fā)技術(shù)詳解》書(shū)中的例子。大家也可以去看看這本書(shū)。  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-06-05 11:36 | jick
          這個(gè)還不錯(cuò),謝了。不過(guò)有沒(méi)更先進(jìn)一點(diǎn)的啊。
          如果有,幫忙發(fā)過(guò)來(lái)。yinhui.java@163.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-06-08 13:58 | 天路
          謝謝,學(xué)習(xí)中

          wfjvip@126.com

          請(qǐng)共享一份。  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-06-12 11:32 | 臥石荷花
          好東西,樓主分享一份
          hehua513@163.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-06-12 11:32 | 臥石荷花
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-08-14 15:14 | pn2007
          能否發(fā)一份源碼?謝謝! sailsoft@tom.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2007-08-28 14:48 | java愛(ài)好者
          樓主,
          能否給我發(fā)一份源代碼呀?
          我很需要那,,,,,
          希望能得到你的回復(fù),,,,
          先謝謝了。。。。。。
          我的郵箱:wfj587@126.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-10-01 14:19 | 守望者
          迫切希望樓主能整理下,共享下!謝謝
          zhouliming-521@163.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2007-10-19 16:26 | jacky
          請(qǐng)發(fā)到我郵箱來(lái) frank18@126.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-10-19 18:07 | 創(chuàng)世紀(jì)計(jì)算機(jī)
          這種很不錯(cuò),現(xiàn)在已經(jīng)出來(lái)好幾種了,各有所長(zhǎng)~  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-10-21 16:03 | rjw
          我也迫切需要 可以的話發(fā)我一份 rennuoting@126.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-11-18 16:09 | jon
          我也需要 可以的話發(fā)我一份 joney_110@163.com   回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2007-12-09 19:28 | 獵人
          能給我發(fā)一份源代碼嗎?謝謝了
          nxzn2008@hotmail.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-02-06 21:00 |
          請(qǐng)問(wèn)一下要把《征服》的代碼放到IE下為什么就不能使用動(dòng)態(tài)樹(shù)了呢?我已經(jīng)加了new Function()了,但是還是只能在firefox下使用,而不能在IE下使用,請(qǐng)問(wèn)大家有沒(méi)有碰到這種情況的 啊?謝謝指教一下。  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-02-06 21:02 |
          在這里主要是不理解:String submitURL="getFolderList.go?method=doGetSubFolderList&parentID="+ID;
          這一句,在征服里面用的是treeview?parentID+ID,但是在整個(gè)war文件里面沒(méi)有看到treeview為名的文件。勞煩各位幫幫忙解決一下。  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          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();
          }
          };

          函數(shù)中沒(méi)有增加對(duì)瀏覽器的判斷,比如在IE7下樹(shù)就打不開(kāi),  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-03-13 15:22 | 千山鳥(niǎo)飛絕
          @satanc
          ajax對(duì)ie7的兼容性確實(shí)不好。

          這個(gè)樹(shù)形,我已經(jīng)改為適合ie7的結(jié)構(gòu)了。下次更新一下。  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-05-05 10:29 | hz
          摟主能不能給我發(fā)一份有關(guān)jsp樹(shù)型菜單的源碼啊,不勝感謝!!!
          boy_33@163.com
          謝謝了!!!  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-05-10 22:56 | bbq
          樓主能把實(shí)現(xiàn)整個(gè)樹(shù)型菜單的代碼發(fā)給我嗎,小弟感激不盡!  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-05-10 22:57 | bbq
          樓主能把實(shí)現(xiàn)整個(gè)樹(shù)型菜單的代碼發(fā)給我嗎,小弟感激不盡!
          bbqlove2008@163.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-05-28 11:14 | nevi
          學(xué)習(xí)中,樓主能把實(shí)現(xiàn)整個(gè)樹(shù)型菜單的代碼發(fā)給我嗎?感激不盡! 郵箱是:somethingtodo@163.com,謝謝了。  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-06-12 08:05 | xieamao
          能否給我也發(fā)一份源代碼,感激不盡。
          郵箱:xpf7622@hotmail.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-06-23 14:30 | luoyexian
          能否也給我一分源碼.非常感謝e-mail:luoyexian@163.com
            回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-06-24 15:55 | luoyexian
          請(qǐng)問(wèn)這段代碼是怎么理解?我看不懂.可以解析下嗎?
          兩個(gè)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>");
            回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-07-15 16:20 | Cherry
          能否也給我一分源碼.非常感謝e-mail:cherryxiangyi@gmail.com
          我嘗試自己做,可是還有一些部分不明白,所以希望能看看你的源碼加以研究,謝謝
            回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-09-13 19:00 | chip
          能否也給我一分源碼.非常感謝e-mail:aixroot@163.com
            回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2008-11-23 20:31 | 孫利超
          能不能也給我一份那?
          非常感謝 slchao123@163.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2009-03-08 15:24 | echo
          能不能給我發(fā)一份,我的郵箱是psyche19830113@163.com
          謝謝!  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2009-03-19 23:24 | wade
          調(diào)試了一下,下面這個(gè)方法有點(diǎn)錯(cuò)誤:
          ==================================================
          /** *//**
          * 函數(shù)說(shuō)明:展開(kāi)目錄
          * 參數(shù)說(shuō)明: 目錄對(duì)象
          * 返回值:展開(kāi)目錄的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();
          }
          ==============================================
          正確的寫(xiě)法是:

          /** *//**
          * 函數(shù)說(shuō)明:展開(kāi)目錄
          * 參數(shù)說(shuō)明: 目錄對(duì)象
          * 返回值:展開(kāi)目錄的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();
          }  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2009-03-20 10:03 | wade
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
          2009-04-13 18:01 | 謝華鋒
          你好能發(fā)一份程序代碼給我嗎? 太謝謝了````郵箱地址xiehuafeng880530@163.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2009-07-31 17:14 | a
          mmh_hudy@126.com  回復(fù)  更多評(píng)論
            
          # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單[未登錄](méi)
          2011-08-29 13:32 | justin
          能發(fā)一份源代碼給我嗎?謝謝樓主~bxiong@hp.com  回復(fù)  更多評(píng)論
            
          正在閱讀:



          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 775408
          • 排名 - 56

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 永和县| 巩留县| 梁山县| 塘沽区| 玛纳斯县| 麻江县| 驻马店市| 齐齐哈尔市| 阿巴嘎旗| 长阳| 道孚县| 香港 | 侯马市| 江陵县| 高陵县| 迁安市| 石家庄市| 济阳县| 台安县| 射阳县| 平遥县| 庆云县| 文安县| 都安| 孝昌县| 汝南县| 肇东市| 青海省| 家居| 华坪县| 乐陵市| 定州市| 安丘市| 台湾省| 武鸣县| 嘉义市| 长乐市| 平罗县| 佳木斯市| 桃源县| 会东县|