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

Access Image in TreeView

5 Answers 133 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
Mike_T
Top achievements
Rank 1
Mike_T asked on 05 Feb 2011, 08:15 PM

Hi Guys,
How do i access the image value to show/hide from code behind in a treeview using the following code
Thanks ...

<telerik:RadTreeView runat="server" ID="RadTreeView1">
    <Nodes>
        <telerik:RadTreeNode Text="03" Expanded="True">
            <Nodes>
                <telerik:RadTreeNode Text="4" Expanded="true">
                    <NodeTemplate>
                        <%# DataBinder.Eval(Container, "Text") %>
                    </NodeTemplate>
                    <Nodes>
                        <telerik:RadTreeNode Text="1">
                            <NodeTemplate>
                                <img src="Images/button_download1.gif" alt="" />
                                <%# DataBinder.Eval(Container, "Text") %>
                            </NodeTemplate>
                        </telerik:RadTreeNode>
                    </Nodes>
                </telerik:RadTreeNode>
                <telerik:RadTreeNode Text="1" Expanded="False">
                    <NodeTemplate>
                        <%# DataBinder.Eval(Container, "Text") %>
                    </NodeTemplate>
                    <Nodes>
                        <telerik:RadTreeNode Text="2">
                            <NodeTemplate>
                                <img src="Images/button_download2.gif" alt="" />
                                <%# DataBinder.Eval(Container, "Text") %>
                                </span> </div>
                            </NodeTemplate>
                        </telerik:RadTreeNode>
                    </Nodes>
                </telerik:RadTreeNode>
            </Nodes>
        </telerik:RadTreeNode>
    </Nodes>
</telerik:RadTreeView>

5 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 07 Feb 2011, 06:41 AM
Hi Mike,


To get a reference to the embedded control, locate the Node that has the Template, and use its FindControl server-side method.
Accessing Controls Inside Templates

Note: You need to add runat="server" to get reference to "img" control in code behind, otherwise use <asp:Image> control for the same purpose.


-Shinu.
0
Mike_T
Top achievements
Rank 1
answered on 07 Feb 2011, 11:11 AM
Hi,
I changed my code to be like this but still no access to the image

<telerik:RadTreeView runat="server" ID="RadTreeView1"
    <Nodes
        <telerik:RadTreeNode Text="03" Expanded="True"
            <Nodes
                <telerik:RadTreeNode Text="4" Expanded="true"
                    <NodeTemplate
                        <%# DataBinder.Eval(Container, "Text") %> 
                    </NodeTemplate
                    <Nodes
                        <telerik:RadTreeNode Text="1"
                            <NodeTemplate
                                <asp:Image src="Images/button_download.gif"  runat="server" id="img11" alt=""  /> 
                                <%# DataBinder.Eval(Container, "Text") %> 
                            </NodeTemplate
                        </telerik:RadTreeNode
                    </Nodes
                </telerik:RadTreeNode
                <telerik:RadTreeNode Text="1" Expanded="False"
                    <NodeTemplate
                        <%# DataBinder.Eval(Container, "Text") %> 
                    </NodeTemplate
                    <Nodes
                        <telerik:RadTreeNode Text="2"
                            <NodeTemplate
                                <img src="Images/button_download2.gif" alt="" /> 
                                <%# DataBinder.Eval(Container, "Text") %> 
                                </span> </div
                            </NodeTemplate
                        </telerik:RadTreeNode
                    </Nodes
                </telerik:RadTreeNode
            </Nodes
        </telerik:RadTreeNode
    </Nodes
</telerik:RadTreeView>
  
Code Behind:
  
    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not Page.IsPostBack Then
            RadTreeView1.DataBind()
            Dim node As RadTreeNode = RadTreeView1.Nodes(0)
            Dim img11 As Image = DirectCast(node.FindControl("img11"), Image)
            img11.Visible = False
        End If
    End Sub
0
Nikolay Tsenkov
Telerik team
answered on 08 Feb 2011, 02:58 PM
Hi Mike_T,

Could you, please, try getting the control by the position of it's declaration (i.e. index), e.g. node.Controls[0] and then cast it to the appropriate type.

Also, are you sure that the node that you try to get an image from has it? Because as I see you try to get an image from the first root node, which obviously doesn't have one. Please, check that out and let me know the results.


Regards,
Nikolay Tsenkov
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
Mike_T
Top achievements
Rank 1
answered on 15 Feb 2011, 11:59 AM
Sorry guys,

I'm not able to solve it can you please help?

Thanks
0
Accepted
Helen
Telerik team
answered on 18 Feb 2011, 10:39 AM
Hello Mike,

Please use the code below:

//aspx:
<telerik:RadTreeView runat="server" ID="RadTreeView1">
    <Nodes>
        <telerik:RadTreeNode Text="03" Expanded="True">
            <Nodes>
                <telerik:RadTreeNode Text="4" Expanded="true">
                    <NodeTemplate>
                        <%# DataBinder.Eval(Container, "Text") %>
                    </NodeTemplate>
                    <Nodes>
                        <telerik:RadTreeNode Text="1">
                            <NodeTemplate>
                                <asp:Image src="Images/button_download.gif"  runat="server" id="img11" alt="button_download"  />
                                <%# DataBinder.Eval(Container, "Text") %>
                            </NodeTemplate>
                        </telerik:RadTreeNode>
                    </Nodes>
                </telerik:RadTreeNode>
                <telerik:RadTreeNode Text="1" Expanded="False">
                    <NodeTemplate>
                        <%# DataBinder.Eval(Container, "Text") %>
                    </NodeTemplate>
                    <Nodes>
                        <telerik:RadTreeNode Text="2">
                            <NodeTemplate>
                                <img src="Images/button_download2.gif" alt="" />
                                <%# DataBinder.Eval(Container, "Text") %>
                                </span> </div>
                            </NodeTemplate>
                        </telerik:RadTreeNode>
                    </Nodes>
                </telerik:RadTreeNode>
            </Nodes>
        </telerik:RadTreeNode>
    </Nodes>
</telerik:RadTreeView>


vb:
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
       If Not Page.IsPostBack Then
           RadTreeView1.DataBind()
           Dim node As RadTreeNode = RadTreeView1.Nodes(0).Nodes(0).Nodes(0)
           Dim img11 As Image = DirectCast(node.FindControl("img11"), Image)
           img11.Visible = False
       End If
   End Sub


Hope this helps.

Regards,
Helen
the Telerik team
Tags
TreeView
Asked by
Mike_T
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Mike_T
Top achievements
Rank 1
Nikolay Tsenkov
Telerik team
Helen
Telerik team
Share this question
or