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

Error when trying to get Control ID

3 Answers 120 Views
PanelBar
This is a migrated thread and some comments may be shown as answers.
tom
Top achievements
Rank 1
tom asked on 12 Feb 2009, 08:59 PM
Newbie, I am trying the examples, and get error from VS2008:

Javascript:
var panel = $find( "<%=RadPanelBar1.ClientID %>" );

Error:
The Controls collection cannot be modified because the control contains codeblocks (i.e. <% ... %>).

How do I fix this? ($find( "RadPanelBar1" ) is OK)

--------------------------------------------------------------------------------------------------------
Here is my partial web page:

<telerik:RadPanelBar  ID="RadPanelBar1">
    <Items>
        <telerik:RadPanelItem>
            <Items>
                <telerik:RadPanelItem>
                    <ItemTemplate>
                       <telerik:RadTreeView ID="RadTreeView1" runat="server">
                        </telerik:RadTreeView>
                    </ItemTemplate>
                </telerik:RadPanelItem>
            </Items>
        </telerik:RadPanelItem>
....

How do I get to get to RadTreeView1 to manipulate the tree?

Thanks.




3 Answers, 1 is accepted

Sort by
0
Paul
Telerik team
answered on 16 Feb 2009, 12:58 PM
Hi Tom,

Here's a sample code snippet that shows the needed approach.

<form id="form1" runat="server"
<asp:ScriptManager ID="ScriptManager1" runat="server"
</asp:ScriptManager> 
 
<script type="text/javascript"
function pageLoad() { 
    var treeview = $find('<%= ((RadTreeView)RadPanelBar1.FindItemByValue("templateHolder").FindControl("RadTreeView1")).ClientID %>'); 
    alert(treeview); 
</script> 
 
<telerik:RadPanelBar runat="server" ID="RadPanelBar1"
<Items> 
    <telerik:RadPanelItem Text="root item"
    <Items> 
        <telerik:RadPanelItem Value="templateHolder"
        <ItemTemplate> 
            <telerik:RadTreeView ID="RadTreeView1" runat="server"
            </telerik:RadTreeView> 
        </ItemTemplate> 
        </telerik:RadPanelItem> 
    </Items> 
    </telerik:RadPanelItem> 
</Items> 
</telerik:RadPanelBar> 
</form> 


Sincerely yours,
Paul
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Zsolt
Top achievements
Rank 1
answered on 11 Mar 2009, 08:50 AM
The template control is not visible from codebehind?? it does not show in the designer.cs
How can I access the control from codebehind?
0
Paul
Telerik team
answered on 11 Mar 2009, 09:56 AM
Hi Zsolt,

You have to use the FindControl() method to get reference to the templated control(s).

ASPX:
    <form id="form1" runat="server">  
        <asp:ScriptManager ID="ScriptManager1" runat="server">  
        </asp:ScriptManager> 
        <telerik:RadPanelBar runat="server" ID="RadPanelBar1">  
            <Items> 
                <telerik:RadPanelItem Text="root item" runat="server" Expanded="true">  
                    <Items> 
                        <telerik:RadPanelItem Value="templateHolder" runat="server">  
                            <ItemTemplate> 
                                <telerik:RadTreeView ID="RadTreeView1" runat="server">  
                                    <Nodes> 
                                        <telerik:RadTreeNode runat="server" Text="Root RadTreeNode1">  
                                            <Nodes> 
                                                <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1">  
                                                    <Nodes> 
                                                        <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1">  
                                                        </telerik:RadTreeNode> 
                                                        <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 2">  
                                                        </telerik:RadTreeNode> 
                                                        <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 3">  
                                                        </telerik:RadTreeNode> 
                                                    </Nodes> 
                                                </telerik:RadTreeNode> 
                                                <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 2">  
                                                </telerik:RadTreeNode> 
                                            </Nodes> 
                                        </telerik:RadTreeNode> 
                                        <telerik:RadTreeNode runat="server" Text="Root RadTreeNode2">  
                                            <Nodes> 
                                                <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1">  
                                                </telerik:RadTreeNode> 
                                                <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 2">  
                                                </telerik:RadTreeNode> 
                                            </Nodes> 
                                        </telerik:RadTreeNode> 
                                    </Nodes> 
                                </telerik:RadTreeView> 
                            </ItemTemplate> 
                        </telerik:RadPanelItem> 
                    </Items> 
                </telerik:RadPanelItem> 
            </Items> 
            <CollapseAnimation Duration="100" Type="None" /> 
            <ExpandAnimation Duration="100" Type="None" /> 
        </telerik:RadPanelBar> 
    </form> 

Code-behind:
using System;  
using System.Data;  
using System.Configuration;  
using System.Collections;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.UI.HtmlControls;  
using Telerik.Web.UI;  
 
public partial class Default2 : System.Web.UI.Page  
{  
    protected void Page_Load(object sender, EventArgs e)  
    {  
        RadTreeView treeview = (RadTreeView)RadPanelBar1.FindItemByValue("templateHolder").FindControl("RadTreeView1");  
        treeview.ExpandAllNodes();  
    }  
}  
 


All the best,
Paul
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
PanelBar
Asked by
tom
Top achievements
Rank 1
Answers by
Paul
Telerik team
Zsolt
Top achievements
Rank 1
Share this question
or