0

我想能夠將項目從一個Infragistics DataGrid拖到另一個,而目標網格中的項目也是可排序的。Draggable連接到可排序

不幸的是,我不能使用jsfiddle,因爲我不能在那裏使用infragistics控件。

$("[id*=sourceGrid] [id*=dataTbl] tbody tr").draggable({ 
    helper: "clone", 
    revert: "invalid", 
    connectToSortable: '[id*=destination]'     
}); 

$("[id*=destinationGrid]").sortable({ 
    cursor: 'move', 
    helper: fixHelperModified,  
    revert: true, 
    items: "[id*=container] [id*=dataTbl] tbody tr:not(.placeholder)",     
    receive: function (event, ui) {      
     var grid = $IG.WebDataGrid.find("destinationGrid");     
     $sentence = $(ui.item).find("td").eq(0).html(); 
     var row = new Array(Math.floor((Math.random() * 100) + 1), $sentence, $order); 
     grid.get_rows().add(row);     
    } 
}); 

的問題是:當我從sourceGrid到destinationGrid掉落物品,我不希望被放置到新的電網可拖動 - 我只希望使用接收函數來創建一個新的行在具有來自可拖動元素的值的網格中。現在,我得到了兩個 - 新創建的gridRow和丟棄的項目。我怎樣才能防止呢?

+1

你嘗試過什麼?如何將「助手」方法更改爲*原始*,然後在刪除時刪除()? – DevlshOne

+0

對不起,忘了提。我需要'克隆'行爲。我不想移動,但是將項目從源文件複製到目標文件,並仍然將它們放在源文件中。當我刪除()'接收事件中的ui.item時,我刪除了sourceGrid中的原始行。這種行爲非常奇怪,我不明白爲什麼ui.item是我拖動的原始元素,而不是克隆的佔位符。 – user66875

+1

您是否嘗試過讓您的'sourceGrid'爲* sortable()*?另外,在'receive'事件中,你可以console.log * ui.helper *嗎? – DevlshOne

回答

1

您可以捕獲beforeStop事件中複製的項目。

var newItem; 

$(".list").sortable({ 
    connectWith: ".list", 
    beforeStop: function (event, ui) { 
     newItem = ui.item; 
    }, 
    receive: function(event,ui) { 
     $(newItem).doSomething(); 
    } 
});​ 

參考和信貸這個答案:https://stackoverflow.com/a/5864644/3523694

+0

謝謝!這解決了我的問題! – user66875

相關問題