Hi,
I'm using RadTreeView(Q2 2013 SP1) control with templated nodes. My aspx page is like that;
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
<telerik:RadTreeView ID="RadTreeView1" Runat="server" EnableDragAndDrop="True"
EnableDragAndDropBetweenNodes="True" OnNodeDrop="RadTreeView1_HandleDrop" EnableViewState="false">
<Nodes>
<telerik:RadTreeNode runat="server" Text="Genel Müdür A">
<Nodes>
<telerik:RadTreeNode runat="server" Text="Genel Müdür Yardımcısı A" >
<NodeTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="isim"></asp:Label></td>
<td>
<telerik:RadTextBox ID="RadTextBox1" runat="server">
</telerik:RadTextBox></td>
</tr>
</table>
</NodeTemplate>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeNode>
<telerik:RadTreeNode runat="server" Text="Genel Müdür B">
<Nodes>
<telerik:RadTreeNode runat="server" Text="Genel Müdür Yardımcısı B" >
<NodeTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="isim"></asp:Label></td>
<td>
<telerik:RadTextBox ID="RadTextBox1" runat="server">
</telerik:RadTextBox></td>
</tr>
</table>
</NodeTemplate>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeView>
</div>
</form>
</body>
and also aspx.vb is;
Protected Sub RadTreeView1_HandleDrop(ByVal sender As Object, ByVal e As RadTreeNodeDragDropEventArgs)
Dim sourceNode As RadTreeNode = e.SourceDragNode
Dim destNode As RadTreeNode = e.DestDragNode
Dim dropPosition As RadTreeViewDropPosition = e.DropPosition
If destNode IsNot Nothing Then
'drag&drop is performed between trees
'dropped node will be a sibling of the destination node
If sourceNode.TreeView.SelectedNodes.Count <= 1 Then
PerformDragAndDrop(dropPosition, sourceNode, destNode)
ElseIf sourceNode.TreeView.SelectedNodes.Count > 1 Then
For Each node As RadTreeNode In RadTreeView1.SelectedNodes
If Not node.IsAncestorOf(destNode) Then
PerformDragAndDrop(dropPosition, sourceNode, destNode)
End If
Next
End If
destNode.Expanded = True
sourceNode.TreeView.UnselectAllNodes()
RadTreeView1.DataBind()
End If
End Sub
Private Shared Sub PerformDragAndDrop(ByVal dropPosition As RadTreeViewDropPosition, ByVal sourceNode As RadTreeNode, ByVal destNode As RadTreeNode)
If sourceNode.Equals(destNode) OrElse sourceNode.IsAncestorOf(destNode) Then
Return
End If
sourceNode.Owner.Nodes.Remove(sourceNode)
Select Case dropPosition
Case RadTreeViewDropPosition.Over
' child
If Not sourceNode.IsAncestorOf(destNode) Then
destNode.Nodes.Add(sourceNode)
End If
Exit Select
Case RadTreeViewDropPosition.Above
' sibling - above
destNode.InsertBefore(sourceNode)
Exit Select
Case RadTreeViewDropPosition.Below
' sibling - below
destNode.InsertAfter(sourceNode)
Exit Select
End Select
End Sub
I'm trying to drag and drop templated nodes but in my first try it looses the template controls' values and at the second time i got the error message- e.SourceDragNode is Nothing.
please help..
I'm using RadTreeView(Q2 2013 SP1) control with templated nodes. My aspx page is like that;
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
<telerik:RadTreeView ID="RadTreeView1" Runat="server" EnableDragAndDrop="True"
EnableDragAndDropBetweenNodes="True" OnNodeDrop="RadTreeView1_HandleDrop" EnableViewState="false">
<Nodes>
<telerik:RadTreeNode runat="server" Text="Genel Müdür A">
<Nodes>
<telerik:RadTreeNode runat="server" Text="Genel Müdür Yardımcısı A" >
<NodeTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="isim"></asp:Label></td>
<td>
<telerik:RadTextBox ID="RadTextBox1" runat="server">
</telerik:RadTextBox></td>
</tr>
</table>
</NodeTemplate>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeNode>
<telerik:RadTreeNode runat="server" Text="Genel Müdür B">
<Nodes>
<telerik:RadTreeNode runat="server" Text="Genel Müdür Yardımcısı B" >
<NodeTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="isim"></asp:Label></td>
<td>
<telerik:RadTextBox ID="RadTextBox1" runat="server">
</telerik:RadTextBox></td>
</tr>
</table>
</NodeTemplate>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeView>
</div>
</form>
</body>
and also aspx.vb is;
Protected Sub RadTreeView1_HandleDrop(ByVal sender As Object, ByVal e As RadTreeNodeDragDropEventArgs)
Dim sourceNode As RadTreeNode = e.SourceDragNode
Dim destNode As RadTreeNode = e.DestDragNode
Dim dropPosition As RadTreeViewDropPosition = e.DropPosition
If destNode IsNot Nothing Then
'drag&drop is performed between trees
'dropped node will be a sibling of the destination node
If sourceNode.TreeView.SelectedNodes.Count <= 1 Then
PerformDragAndDrop(dropPosition, sourceNode, destNode)
ElseIf sourceNode.TreeView.SelectedNodes.Count > 1 Then
For Each node As RadTreeNode In RadTreeView1.SelectedNodes
If Not node.IsAncestorOf(destNode) Then
PerformDragAndDrop(dropPosition, sourceNode, destNode)
End If
Next
End If
destNode.Expanded = True
sourceNode.TreeView.UnselectAllNodes()
RadTreeView1.DataBind()
End If
End Sub
Private Shared Sub PerformDragAndDrop(ByVal dropPosition As RadTreeViewDropPosition, ByVal sourceNode As RadTreeNode, ByVal destNode As RadTreeNode)
If sourceNode.Equals(destNode) OrElse sourceNode.IsAncestorOf(destNode) Then
Return
End If
sourceNode.Owner.Nodes.Remove(sourceNode)
Select Case dropPosition
Case RadTreeViewDropPosition.Over
' child
If Not sourceNode.IsAncestorOf(destNode) Then
destNode.Nodes.Add(sourceNode)
End If
Exit Select
Case RadTreeViewDropPosition.Above
' sibling - above
destNode.InsertBefore(sourceNode)
Exit Select
Case RadTreeViewDropPosition.Below
' sibling - below
destNode.InsertAfter(sourceNode)
Exit Select
End Select
End Sub
I'm trying to drag and drop templated nodes but in my first try it looses the template controls' values and at the second time i got the error message- e.SourceDragNode is Nothing.
please help..