天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

dhtmlxTree目錄樹增加右鍵菜單以及拖拽排序的實(shí)現(xiàn)方法

在以前的一個(gè)公司內(nèi)部管理系統(tǒng)(InnerOA)中,對(duì)于目錄樹的構(gòu)造我采用的是dTree,實(shí)現(xiàn)無限級(jí)目錄顯示及右鍵菜單功能(右鍵菜單中包括:新建、修改、共享、刪除、刷新等功能,如下圖所示)

關(guān)于公司內(nèi)部管理系統(tǒng)(InnerOA)中目錄樹的一些知識(shí)以后有時(shí)間將整理并提供源碼。

但是dTree唯一遺憾的是不支持拖拽排序功能,這讓我在完成InnerOA之后心里一直糾結(jié)的問題。在網(wǎng)上查看關(guān)于目錄樹的一些內(nèi)容,dTree是我目前認(rèn)為最符合我項(xiàng)目的一個(gè)。在一個(gè)偶然機(jī)會(huì),發(fā)現(xiàn)了另一個(gè)強(qiáng)大的目錄樹,也就是本文所說的:dhtmlxTree,支持拖拽功能,然而在源碼中并沒有找到類似DEMO或功能,僅發(fā)現(xiàn)提供一個(gè)啟用拖拽參數(shù),不過,這也讓我決心解決目錄樹的拖拽排序問題,于是花了點(diǎn)時(shí)間研究了一下源碼和結(jié)合dTree項(xiàng)目所總結(jié)的經(jīng)驗(yàn),終于實(shí)現(xiàn)我的需求:可自由拖拽排序、移植dTree的右鍵菜單功能,并實(shí)現(xiàn)在所選目錄上右鍵單擊并彈出菜單,可以當(dāng)前目錄為基礎(chǔ),進(jìn)行如下操作:

1、在該目錄下新建目錄

2、修改當(dāng)前目錄名稱

3、刪除當(dāng)前目錄

4、刷新頁面

5、可增加其它功能,比如“共享”。我在公司內(nèi)部管理系統(tǒng)(InnerOA)中是以windows操作系統(tǒng)的共享為原型,設(shè)置“自讀共享”或“可寫共享”,并可指定對(duì)某用戶(或多用戶甚至全部用戶)共享。這樣只有設(shè)定共享的用戶,才可看到共享的內(nèi)容。

由于無法在線演示,下面用幾個(gè)圖說明一下(源碼下載見:http://download.csdn.NET/detail/zm2714/4544616):

1、可在任意目錄上點(diǎn)擊右鍵,新建目錄

2、可在任意目錄上點(diǎn)擊右鍵,修改當(dāng)前目錄。但根目錄除外。

上圖說明:根目錄不可修改,即圖中Books不可修改。此id值為-1。這是一個(gè)特殊ID。標(biāo)志為根目錄。

上圖說明:其它任意目錄勻可修改。實(shí)際使用中,是存在數(shù)據(jù)庫中目錄的ID值。上圖中“目錄ccc”的ID值為3。

上圖說明:修改名稱后,點(diǎn)擊保存,即可。

3、可拖動(dòng)根目錄之外的任意目錄,拖拽排序。

拖拽排序原理:將欲選擇中目錄拖到其父目錄時(shí),更新他的時(shí)間為當(dāng)前時(shí)間。按時(shí)間DESC排序。這樣將出現(xiàn)在“父目錄”的第一個(gè)。循環(huán)此操作,可以實(shí)現(xiàn)排序功能。

二、代碼實(shí)現(xiàn)
1、引用js文件和樣式文件
復(fù)制代碼 代碼如下:
<script language="JavaScript" type="text/JavaScript" src="tree/jQuery1.6.2.js"></script>
<script type="text/Javascript" src="tree/dhtmlxcommon.js"></script>
<script type="text/Javascript" src="tree/dhtmlxtree.js"></script> 
<script type="text/Javascript" src="tree/jquery.contextmenu.js"></script>
<link rel="STYLESHEET" type="text/css" href="tree/dhtmlxtree.css">
<script language="JavaScript" type="text/JavaScript" src="js/dialog/dialog.js"></script>

2、程序?qū)崿F(xiàn)
復(fù)制代碼 代碼如下:
<script type="text/Javascript">
function showMsg(id,title,icon,str){
  art.dialog.through({id:'msg',title:title,icon:icon,drag:false,lock:true,content:str,ok:function(){art.dialog.close();}});
}

function tondrag(id, id2){
  alert(id);alert(id2);
    return confirm("Do you want to move node " + tree.getItemText(id) + " to item " + tree.getItemText(id2) + "?");
};

$(document).ready(function(){
  //$(document).bind("contextmenu",function(){return false;});
  //$(document).bind("selectstart",function(){return false;});
  tree = new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
  tree.setSkin('dhx_skyblue');
  tree.setImagePath("./tree/imgs/");
  //tree.setImageArrays("plus", "open2.gif", "open2.gif", "open2.gif", "open2.gif", "open2.gif");
  //tree.setImageArrays("minus", "close2.gif", "close2.gif", "close2.gif", "close2.gif", "close2.gif");
  //設(shè)置節(jié)點(diǎn)圖片 setStdImages('無子目錄時(shí)的圖片','節(jié)點(diǎn)展開后的圖片','節(jié)點(diǎn)未展開時(shí)的圖片')
  tree.setStdImages("folderClosed.gif", "folderOpen.gif", "folderClosed.gif");
  tree.enableDragAndDrop(1);//允許拖拽
  tree.enableTreeLines(false);
  tree.setOnRightClickHandler(function(id){
    //var i=tree.getSelectedItemId();
    //alert(i);
    tree.selectItem(id);
    $("#mm").val(id);
  });

  tree.setDragHandler(function(id,id2){//id為拖拽目錄的ID,id2拖拽終點(diǎn)目錄。將id2做為id的父目錄。
    //art.dialog.confirm("Do you want to move node " + tree.getItemText(id) + " to item " + tree.getItemText(id2) + "?",function(){
      $.post("tree/move_folder.php",{id1:id,id2:id2},function(tips){
          //art.dialog.through({title:'信息',icon:'face-smile',lock:true,content:tips,ok:function(){art.dialog.close();location.reload();}});
      });
      return true;
    //});
  });
  //tree.setXMLAutoLoading("./tree/get.php");
  tree.loadXML("./tree/get.php");
  setTimeout('a()',500);
});

function a(){//綁定右鍵菜單。
    $('#treeboxbox_tree span').contextMenu('jqueryDtreeMenu',{
    onContextMenu: function(e) {
      if(1){
          return true;
      }else return false;
    },
    bindings: {
      'new':function(t){
        id=$(t).attr("name");
        id=parseInt(id);
        if(id==-1){
          title='創(chuàng)建目錄';
        }else{
          title='在“'+$(t).html()+'”目錄下 創(chuàng)建';
        }
        art.dialog.open(global_current_folder+'tree/edit_folder.php?do=create&t_folder_id='+id,{id:'edit',title:title,lock:true,height:'60px',resize:false},false);
      },
      'modify':function(t){
        id=$(t).attr("name");
        //“我的文檔”中,是以當(dāng)前用戶的“用戶名”為根目錄的。比如員工的登陸帳號(hào)為:鄭明,則“我的文檔”中,以“鄭明”為根目錄做為起點(diǎn)。該名稱不可更改。增加對(duì)$parentId的判斷,就是避免給用戶造成錯(cuò)覺。
        if(id==-1){
          showMsg(0,'提示','face-smile','該名稱不可修改');
          return false;
        }else{
          var name=$(t).html();
          name=encodeURIComponent(encodeURIComponent(name));
          art.dialog.open(global_current_folder+'tree/edit_folder.php?do=modity&name='+name+'&t_folder_id='+id,{id:'edit',title:'修改目錄',lock:true,height:'60px',resize:false},false);
        }
      },
      'delete':function(t){
        id=$(t).attr("name");
        if(id==-1){
          showMsg(0,'提示','face-smile','該目錄不可刪除');
          return false;
        }else{
          var name=$(t).html();
          art.dialog.confirm('確認(rèn)刪除“'+name+'”目錄嗎?',function(){
           $.post("tree/del_folder.php",{id:id},function(tips){
              art.dialog.through({title:'信息',icon:'face-smile',lock:true,content:tips,ok:function(){art.dialog.close();location.reload();}
              });
            });
            return true;
          });
        }
      },
      'refresh': function(t) {
        location.reload();
      }
    }
  });

}
</script>
<table>
<tr>
  <td valign="top">
  <div id="treeboxbox_tree" style="width:250px;height:218px;background-color:#f5f5f5;border:1px solid Silver;"></div>
  </td>
</tr>
</table>
<input type="text" id="mm" value="">

<style>
  .m{font-size:13px;padding-left:5px;}
</style>
<!-- 右鍵菜單 開始 -->
<div class="contextMenu" id="jqueryDtreeMenu" style="display:none;">
  <ul>
    <li id="new"><img src="tree/rightkey_menu_img/folder.png" /><span class="m">新建</span></li>
    <li id="modify"><img src="tree/rightkey_menu_img/disk.png" /><span class="m">修改</span></li>
    <li id="delete"><img src="tree/rightkey_menu_img/cross.png" /><span class="m">刪除</span></li>
    <li id="refresh"><img src="tree/rightkey_menu_img/refresh.png" /><span class="m">刷新</span></li>
  </ul>
</div>
<!-- 右鍵菜單 結(jié)束 -->

上面源碼中的一些注釋語句,可以在測(cè)試時(shí)恢復(fù)并可查看所需要的值。有益于理解本篇文章所述的功能并快速應(yīng)用于你的實(shí)際項(xiàng)目中,同時(shí)歡迎交流。

對(duì)dhtmlXTree的詳細(xì)使用,就不在本篇范圍之內(nèi)了。你可以參考網(wǎng)上關(guān)于dhtmlXTree的使用教程。

php技術(shù)dhtmlxTree目錄樹增加右鍵菜單以及拖拽排序的實(shí)現(xiàn)方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91免费精品国自产拍在线可以看 | 把内衣脱了把奶露出来 | 18 japanese宾馆直播 | 亚洲精品久久无码AV片银杏 | 亚洲欧美日韩在线码不卡 | 久久国产免费观看精品1 | 日本高清天码一区在线播放 | 麻豆文化传媒一区二区 | 9966在线观看免费高清电影 | 免费国产麻豆传 | 4虎最新网址| 精精国产www视频在线观看免费 | 久久99国产精品一区二区 | 99热视频这里只有久久精品 | 日本精品卡一卡2卡3卡四卡三卡 | 伦理片在线线249 | 果冻传媒在线完整免费播放 | 波多久久亚洲精品AV无码 | 1000部做羞羞事禁片免费视频网站 | 欧美日韩高清一区 | 亚洲国产精品嫩草影院永久 | 日韩一区二区三区精品 | 欧美高清一区二区三 | 大伊人青草狠狠久久 | 国产成人精品系列在线观看 | 嫩草影院永久在线一二三四 | 神马老子影院午夜伦 | 九九视频在线观看视频6 | 九九热在线免费观看 | 天海翼精品久久中文字幕 | 国产美女视频一区二区二三区 | 99久久精品国产高清一区二区 | qovd电影| 蜜柚视频高清在线 | 日本高清不卡一区久久精品 | 久久精品人人做人人爽97 | 一二三四在线视频社区 | 美女的让男人桶爽网站 | 精品无码国产AV一区二区三区 | 伊人久久大香线蕉资源 | 亚洲免费视频日本一区二区 |