我希望能够将项目从一个 Infragistics DataGrid 拖动到另一个,同时目标网格中的项目也可以排序。
不幸的是,我无法使用 jsfiddle,因为我无法使用那里的基础设施控件。
$("[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 和删除的项目。我怎样才能防止这种情况发生?
最佳答案
您可以在 beforeStop 事件中捕获复制的项目。
var newItem;
$(".list").sortable({
connectWith: ".list",
beforeStop: function (event, ui) {
newItem = ui.item;
},
receive: function(event,ui) {
$(newItem).doSomething();
}
});
关于javascript - 可拖动连接到可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245557/