在以前的一個公司內部管理系統(InnerOA)中,對於分類樹的構造我採用的是dTree,實現無限級目錄顯示及右鍵菜單功能(右鍵菜單中包括:建立、修改、共用、刪除、重新整理等功能,如所示)
關於公司內部管理系統(InnerOA)中分類樹的一些知識以後有時間將整理並提供源碼。
但是dTree唯一遺憾的是不支援拖拽排序功能,這讓我在完成InnerOA之後心裡一直糾結的問題。在網上查看關於分類樹的一些內容,dTree是我目前認為最符合我項目的一個。在一個偶然機會,發現了另一個強大的分類樹,也就是本文所說的:dhtmlxTree,支援拖拽功能,然而在源碼中並沒有找到類似DEMO或功能,僅發現提供一個啟用拖拽參數,不過,這也讓我決心解決分類樹的拖拽排序問題,於是花了點時間研究了一下源碼和結合dTree項目所總結的經驗,終於實現我的需求:可自由拖拽排序、移植dTree的右鍵菜單功能,並實現在所選目錄上按右鍵並快顯功能表,可以目前的目錄為基礎,進行如下操作:
1、在該目錄下建立目錄
2、修改目前的目錄名稱
3、刪除目前的目錄
4、重新整理頁面
5、可增加其它功能,比如“共用”。我在公司內部管理系統(InnerOA)中是以windows作業系統的共用為原型,設定“自讀共用”或“可寫共用”,並可指定對某使用者(或多使用者甚至全部使用者)共用。這樣只有設定共用的使用者,才可看到共用的內容。
由於無法線上示範,下面用幾個圖說明一下(源碼下載見:http://download.csdn.net/detail/zm2714/4544616):
1、可在任意目錄上點擊右鍵,建立目錄
2、可在任意目錄上點擊右鍵,修改目前的目錄。但根目錄除外。
說明:根目錄不可修改,即圖中Books不可修改。此id值為-1。這是一個特殊ID。標誌為根目錄。
說明:其它任意目錄勻可修改。實際使用中,是存在資料庫中目錄的ID值。中“目錄ccc”的ID值為3。
說明:修改名稱後,點擊儲存,即可。
3、可拖動根目錄之外的任意目錄,拖拽排序。
拖拽排序原理:將欲選擇中目錄拖到其父目錄時,更新他的時間為目前時間。按時間DESC排序。這樣將出現在“父目錄”的第一個。迴圈此操作,可以實現排序功能。
二、代碼實現
1、引用js檔案和樣式檔案
複製代碼 代碼如下:
2、程式實現
複製代碼 代碼如下:
上面源碼中的一些備註陳述式,可以在測試時恢複並可查看所需要的值。有益於理解本篇文章所述的功能並快速應用於你的實際項目中,同時歡迎交流。
對dhtmlXTree的詳細使用,就不在本篇範圍之內了。你可以參考網上關於dhtmlXTree的使用教程。
http://www.bkjia.com/PHPjc/326767.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/326767.htmlTechArticle在以前的一個公司內部管理系統(InnerOA)中,對於分類樹的構造我採用的是dTree,實現無限級目錄顯示及右鍵菜單功能(右鍵菜單中包括:...