我正在使用Ignite UI拖放树视图。
有没有办法将拖动的项目保留在列表中?
将项目删除到新位置后,它会从之前的位置删除项目。如何在两个地方保留物品?
$("#StructureList").igTree({
singleBranchExpand: true,
checkboxMode: 'triState',
dataSource: data,
dataSourceType: 'json',
bindings: {
textKey: 'LineName',
valueKey: 'LineID',
imageUrlKey: 'ImageUrl',
childDataProperty: 'FacDetails',
bindings: {
textKey: 'FacName',
valueKey: 'FacID',
childDataProperty: 'strDetails',
bindings: {
textKey: 'strName',
valueKey: 'strID'
}
}
},
dragAndDrop: true,
dragAndDropSettings: {
allowDrop: true,
dragAndDropMode: "copy",
customDropValidation: function (element) {
// Validates the drop target
var valid = true,
droppableNode = $(this);
if (droppableNode.is('a') && droppableNode.closest('li[data-role=node]').attr('data-value') === 'File') {
valid = false;
}
return valid;
}
}
});
答案 0 :(得分:2)
Ignite UI igTree
有三种不同的拖放模式 - 默认,移动,复制。
default - 如果保持 ctrl ,则在没有保持和复制修改键的情况下移动已删除的节点。
移动 - 丢弃的节点始终移动,从而从源中移除
copy-dropped节点总是被复制,因此保存在源代码中。
这是docs。
为了让它始终复制,将树模式设置为copy
。
$(".selector").igTree({
dragAndDropSettings : {
dragAndDropMode: "copy"
}
});