我正在处理树中的移动节点,当它们移动时,它们的 ID 通过后端的 C# 在数据库中更新。到目前为止,我已经设法更新了正在移动的节点的位置,但是在它移动之后,树中其他节点的位置也应该得到更新。谁能告诉我如何进行此操作?
itemmove : {
fn : function(v, oldParent, newParent, index, eOpts) {
var nodeID = v.data.id;
var oldParent = oldParent.data.id;
var newParent = newParent.data.id;
var index = index;
var level = v.data.level;
movenode(nodeID, oldParent, newParent, index, level);
}
}
function movenode(nodeID, oldParent, newParent, index, level) {
Ext.Ajax.request({
url : 'data/pages.aspx',
params : {
UserID : USER.UserID,
mode : 'MOVENODE',
currentNode : nodeID,
oldParentNode : oldParent,
newParentNode : newParent,
index : index,
level : level,
ProjDB : projDB
},
success : function() {
loadTREEst();
genMessage(LANG.Suc, LANG.SaveOK, 'tick', false);
},
failure : function() {
genMessage(LANG.Warn, LANG.GenWarn, 'warn', false);
}
});
}
因此,我将参数发送到 SQl,然后更新已移动节点的索引。
例如,如果我将一个节点从位置 8 移动到 1,则第 8 个节点的索引在数据库中更改为 1,但第一个节点的索引保持为 1。因此,树也不会更新。我希望树中的所有其他节点也得到更新。因此,在这种情况下,索引 1 中的节点将变为索引 2,索引 2 中的节点将变为索引 3,依此类推。谁能解释我如何做到这一点。
除了自动同步或同步之外,还有其他方法可以做到这一点吗?提前致谢。