A lot of people ask how to do a post back and save the drag and drop node to db after user’s drag and drop action. Here are the steps:
1. Add two textboxes to the page to hold the node values and a server side button to trigger the PostBack, wrap with a hidden div:
<div style="display:none"> <asp:TextBox ID="txtCurrentNode" runat="server"></asp:TextBox> <asp:TextBox ID="txtNewParentNode" runat="server"></asp:TextBox> <asp:Button ID="btnPostBackTrigger" runat="server" onclick="btnPostBackTrigger_Click" /> </div>
2. Set the OnNodeDragAndDropCompletedScript (here I am using version 1.5.8, if you are using an older version, the property is OnNodeDragAndropCompleteScript. You can either upgrade to the latest version or change the property yourself.) property
OnNodeDragAndDropCompletedScript="dndCompletedHandler( elem, newParent )"
3. Write the dndCompletedHandler function in javascript:
//parameter must be "elem" and "newParent"
function dndCompletedHandler(elem, newParent) {
var curNodeValue = elem.getAttribute("treeNodeValue");
var newParentValue = newParent.getAttribute("treeNodeValue");
//set to the hidden fields
document.getElementById('<%=txtCurrentNode.ClientID %>').value = curNodeValue;
document.getElementById('<%=txtNewParentNode.ClientID %>').value = newParentValue;
//trigger the PostBack
document.getElementById('<%=btnPostBackTrigger.ClientID %>').click();
}
4. Handler actions in the event handler method of the btnPostBackTrigger:
protected void btnPostBackTrigger_Click( object sender, EventArgs e )
{
string curNodeValue = this.txtCurrentNode.Text;
string newParentValue = this.txtNewParentNode.Text;
//save to the db
}
5. In debug mode, we can see:
That’s it, hope it can help. 🙂