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

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

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

    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)秀的阿賴(lài)樹(shù)型,都是將數(shù)據(jù)全部讀出,然后再分級(jí)顯示。這樣如果數(shù)據(jù)量大,那么第一次顯示將需要客戶(hù)等待很長(zhǎng)一段時(shí)間,降低了客戶(hù)的體驗(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)飛絕 閱讀(13865) 評(píng)論(54)  編輯  收藏 所屬分類(lèi): 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 | 新新人類(lèi)
    把你代碼能否共享一下,謝謝

    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ù)量大用戶(hù)還是要等一段時(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ù)量大用戶(hù)還是要等一段時(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這類(lèi)瀏覽器。而如果要兼容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
    我也迫切需要 可以的話(huà)發(fā)我一份 rennuoting@126.com  回復(fù)  更多評(píng)論
      
    # re: 運(yùn)用ajax技術(shù)的樹(shù)型菜單
    2007-11-18 16:09 | jon
    我也需要 可以的話(huà)發(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)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    好友的blog

    我的其他blog

    老婆的Blog

    搜索

    •  

    積分與排名

    • 積分 - 775263
    • 排名 - 56

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲人成在线免费观看| 成年大片免费视频| 亚洲成熟xxxxx电影| 成av免费大片黄在线观看| 精品国产香蕉伊思人在线在线亚洲一区二区 | 最近2022中文字幕免费视频| 中文字幕免费播放| 亚洲午夜福利精品久久| 日韩毛片在线免费观看| 四虎永久免费影院在线| 久久亚洲精品成人无码| 国产精品免费_区二区三区观看| 国产精品亚洲AV三区| 日本一道高清不卡免费| 亚洲1区2区3区精华液| 国产成人高清精品免费软件| 日本亚洲中午字幕乱码| gogo全球高清大胆亚洲| 尤物视频在线免费观看| 久久久久亚洲爆乳少妇无| 国产在线精品观看免费观看| 亚洲精品狼友在线播放| 久久免费动漫品精老司机| 亚洲国语精品自产拍在线观看| 84pao国产成视频免费播放| 亚洲狠狠狠一区二区三区| 无码日韩人妻av一区免费| 亚洲精品无码成人片久久不卡| 国产精品色午夜免费视频 | 在线免费观看亚洲| 亚洲一卡二卡三卡四卡无卡麻豆| 成人免费视频观看无遮挡| 日韩色日韩视频亚洲网站| 久久久久无码专区亚洲av| 野花香高清在线观看视频播放免费 | 亚洲国产成人片在线观看无码| 99视频精品全部免费观看| 亚洲剧场午夜在线观看| 日韩精品无码人妻免费视频| 又大又硬又粗又黄的视频免费看| 亚洲三区在线观看无套内射|