Edit this page

Accessing Controls Inside Templates

If your RadTabStrip has items with templates that have embedded controls, you may want to access the properties of those embedded controls. To get a reference to the embedded control, locate the RadTabthat has the template, and use its FindControl method.

For example, consider the following, very simple, tab strip:

<telerik:radtabstrip id="RadTabStrip1" runat="server" selectedindex="0" ontabclick="RadTabStrip1_TabClick">
    <Tabs>         
        <telerik:RadTab runat="server" Text="Products" Selected="True" SelectedIndex="0">      
    <Tabs>        
        <telerik:RadTab runat="server" Text="Food" Selected="True" />        
        <telerik:RadTab runat="server" Text="Electronics" />      
    </Tabs>    
    </telerik:RadTab>    
    <telerik:RadTab runat="server" Text="Tours">      
    <Tabs>        
        <telerik:RadTab runat="server" Text="Europe" />        
        <telerik:RadTab runat="server" Text="South Pacific" />      
    </Tabs>    
    </telerik:RadTab> 
    </Tabs>  
    <TabTemplate>     
        <asp:CheckBox ID="CheckBox1" Text='<%# DataBinder.Eval(Container, "Text") %>' 
           Checked='<%# DataBinder.Eval(Container, "Selected") %>' runat="server" />  
    </TabTemplate>
</telerik:radtabstrip>
  • Server-side access

The TabClick event handler uses the FindControl method to locate the CheckBox in the template, so that it can be synchronized with the Selected property:

protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e) 
{ 
    for (int i = 0; i < RadTabStrip1.Tabs.Count; i++) 
    { 
        RadTab tab = RadTabStrip1.Tabs[i];
        CheckBox c = (CheckBox)tab.FindControl("CheckBox1"); 
        c.Checked = tab.Selected; 
        for (int j = 0; j < tab.Tabs.Count; j++) 
        { 
            RadTab child = tab.Tabs[j]; c = (CheckBox)child.FindControl("CheckBox1"); 
            c.Checked = child.Selected; 
        } 
    } 
}   
Protected Sub RadTabStrip1_TabClick(ByVal sender As Object, ByVal e As RadTabStripEventArgs) Handles RadTabStrip1.TabClick
    Dim i As Integer = 0
    While i < RadTabStrip1.Tabs.Count

        Dim tab As RadTab = RadTabStrip1.Tabs(i)
        Dim c As CheckBox = CType(tab.FindControl("CheckBox1"), CheckBox)
        c.Checked = tab.Selected
        Dim j As Integer = 0
        While j < tab.Tabs.Count
            Dim child As RadTab = tab.Tabs(j)
            c = CType(child.FindControl("CheckBox1"), CheckBox)
            c.Checked = child.Selected
            System.Math.Max(System.Threading.Interlocked.Increment(j), j - 1)
        End While
        System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
    End While
End Sub 
  • Client-side access

The client-side findControl method can be used to find an embedded Control's client-side object. For example, if there is a RadToolBar instead of a CheckBox in the example above, the client-side object of the ToolBar can be obtained, like this:

var tabStrip = $find("<%= RadTabStrip1.ClientID %>;");
var tab = tabStrip.findTabByText("Europe");
var toolBar = tab.findControl("RadToolBar1");