RadCalendar for ASP.NET AJAX

RadControls for ASP.NET AJAX

Sometimes it is necessary to locate a control contained inside a template. If the control is given an ID in the template, it can be retrieved from its container (the first control in the parent hierarchy that supports INamingContainer). Simply call the FindControl method of the container object to obtain a reference to the control in the template.

The most difficult case is locating a control inside the TimeTemplate or AlternatingTimeTemplate of a RadTimeView control. This is difficult because there are several controls with the same ID. However, each is contained logically in the namespace of the DataListItem control that is its container. You can access the container by using the DataList property of the RadTimeView control. You can then go through the data list's Items collection to retrieve the DataListItem for a given index. Once you have found the DataListItem of interest, call its FindControl method to retrieve a reference to the control in the template.

Example

The following definitions declare a RadTimePicker that has a TimeTemplate defined, and a Button whose Click event handler needs to access a control in the template:

CopyASPX
     

<telerik:RadTimePicker ID="RadTimePicker1" runat="server">
    <TimeView>
        <TimeTemplate>
            <input style="width: 100%;"
            runat="server"
            id="Button1"
            type="button"
            value='<%# DataBinder.Eval(Container, "DataItem.Time", "{0:t}")%>' />
        </TimeTemplate>
    </TimeView>
</telerik:RadTimePicker>
<asp:Button
   ID="btnChangeColor"
   runat="server"
   Text="Change Color"
   OnClick="btnChangeColor_Click" />

In the codebehind, the button's Click handler uses the FindControl method of the DataListItem to locate the control in the template:

See Also

Other Resources