2012-08-14 146 views

回答

1

您可以創建一個自定義的jQuery UI JS與自定義生成器文件:http://jqueryui.com/download

剛剛得到的參考包括用戶界面的核心和您所需要的排序功能,文件大小將是最小的你會得到你正在尋找的功能。

由於劍道UI工作與jQuery和jQuery UI的增加的重量微乎其微。

3

是的,你可以做,在KendoUi。我同意,他們的文件可能是一個更加清楚一點,但檢查出下樹視圖拖&下降:

http://demos.kendoui.com/web/treeview/dragdrop.html

+0

有沒有辦法堅持這個排序服務器端? – 2013-08-22 19:17:42

+0

Kendoui是客戶端庫。是的你可以,但它會與你的服務器端語言。我不明白你爲什麼要這樣做。它只是把更多的計算放在服務器上。 – 2013-08-26 17:36:37

+0

對不起,排序順序(由客戶端上的堆疊/排序設置)爲定製的用戶和需要的應用程序(在我的情況下不需要) – 2013-08-26 19:21:57

4

如果你想擁有相同的外觀&覺得其他KendoUI部件,你可以嘗試實現它使用的TreeView:

如果這是可排序的元素:

var dataSource = [ 
    { id:1, text:"Element 1" }, 
    { id:2, text:"Element 2" }, 
    { id:3, text:"Element 3" }, 
    { id:4, text:"Element 4" }, 
    { id:5, text:"Element 5" }, 
    { id:6, text:"Element 6" } 
]; 

那麼你可以使用下面的代碼:

$("#sortable").kendoTreeView({ 
    dataSource :dataSource, 
    template :"<div class='ob-item'> #= item.text # </div>", 
    dragAndDrop:true, 
    drag  :function (e) { 
     var dst = $($(e.dropTarget).closest(".k-item")[0]).data("uid"); 
     var src = $(e.sourceNode).data("uid"); 
     if ($(e.dropTarget).hasClass("ob-item") && dst != src) { 
      e.setStatusClass("k-insert-top"); 
     } else { 
      e.setStatusClass("k-denied"); 
     } 
    }, 
    drop  :function (e) { 
     if ($(e.sourceNode).data("uid") !== $(e.destinationNode).data("uid")) { 
      $(e.sourceNode).insertBefore(e.destinationNode); 
     } 
     e.setValid(false); 
    } 
}); 

呈現一個排序列表。

注:

ob-item是要用於每個排序項的樣式。例如:

.ob-item { 
    background-color: #e9e9e9; 
    border: 1px solid #a99f9a; 
    color: #2e2e2e; 
    padding: 5px; 
    border-radius: 4px; 
} 

如果允許再嵌套你應該append取代insertBefore

1

嘗試這樣

var template = kendo.template("<ul id='sortable-basic'><li class='sortable'>Papercut <span>3:04</span></li><li class='sortable'>One Step Closer <span>2:35</span></li><li class='sortable'>With You <span>3:23</span></li><li class='sortable'>Points of Authority <span>3:20</span></li><li class='sortable'>Crawling <span>3:29</span></li><li class='sortable'>Runaway <span>3:03</span></li><li class='sortable'>By Myself <span>3:09</span></li></ul>"); 

$("#divSolution").html(template); //display the result 
$("#sortable-basic").kendoSortable();