ツリー内のノードの移動に取り組んでおり、ノードが移動されると、バックエンドのC#を介してデータベース内のIDが更新されます。これまで、移動中のノードの位置を更新することができましたが、移動後、ツリー内の他のノードの位置も更新されるはずです。誰かがこれを進める方法を教えてもらえますか?
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になります。誰かが私にこれを行う方法を説明できますか?
これを行うための自動同期または同期以外の方法はありますか?前もって感謝します。