This is a migrated thread and some comments may be shown as answers.

[Solved] Using RadTreeView.SelectedValue in a RadGrid Template Edit Form

1 Answer 164 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Wyatt
Top achievements
Rank 1
Wyatt asked on 28 Oct 2009, 11:00 PM
I have a RadGrid where one of the editable columns is called NodeId.  NodeId is edited by selecting a node of a RadTreeView.  Because I cannot bind the NodeId RadGrid column value directly to the RadTreeView.SelectedValue, I determined that I must manually handle the passing of the value.  I am able to set the value in the RadTreeView in RadGrid.ItemCreated (see the code below), but I do not know how to persist a RadTreeView selection change.  I explored using RadGrid.ItemCommand, but e.Item.DataItem is nothing.

    Private Sub RadGrid1_ItemCreated(ByVal sender As ObjectByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemCreated  
        If TypeOf e.Item Is GridEditFormItem AndAlso e.Item.IsInEditMode AndAlso e.Item.DataItem IsNot Nothing Then 
            Dim NodeId As Object = (TryCast(e.Item.DataItem, DataRowView))("NodeId")  
            If NodeId IsNot DBNull.Value Then 
                Dim RadTreeView1 As RadTreeView = e.Item.FindControl("RadTreeView1")  
                RadTreeView1.FindNodeByValue(NodeId).Selected = True 
                RadTreeView1.SelectedNode.Focus()  
            End If 
        End If 
    End Sub 

1 Answer, 1 is accepted

Sort by
0
Wyatt
Top achievements
Rank 1
answered on 29 Oct 2009, 06:40 PM
This works.  Please post if you have a more elegant solution.
    Private Sub RadGrid1_ItemDataBound(ByVal sender As ObjectByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound  
        If TypeOf e.Item Is GridEditFormItem AndAlso e.Item.IsInEditMode Then 
            Dim hfNode As HiddenField = e.Item.FindControl("hfNode")  
            If IsNumeric(hfNode.Value) Then 
                Dim rtvNode As RadTreeView = e.Item.FindControl("rtvNode")  
                rtvNode.FindNodeByValue(hfNode.Value).Selected = True 
                rtvNode.SelectedNode.ExpandParentNodes()  
                rtvNode.SelectedNode.Focus()  
            End If 
        End If 
    End Sub 
 
    Private Sub RadGrid1_UpdateCommand(ByVal source As ObjectByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.UpdateCommand  
        If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then 
            Dim hfNode As HiddenField = e.Item.FindControl("hfNode")  
            Dim rtvNode As RadTreeView = e.Item.FindControl("rtvNode")  
            hfNode.Value = rtvNode.SelectedValue  
        End If 
    End Sub 
Tags
Grid
Asked by
Wyatt
Top achievements
Rank 1
Answers by
Wyatt
Top achievements
Rank 1
Share this question
or