Hi Perceli,
I suspect you're trying to access controls that have not been created - this
is because you instantiate template on prerender, whilst it should be done
earlier (CreateChildControls + EnsureChildControls are designed for this), of
course to find the control in the template, you must call FindControl of the
control template is instantiated in, (CType(objTableCell.FindControl("test"),
Panel) in this case)
hope this helps
--
Milosz Skalecki
MCAD
[quoted text, click to view] "Perecli Manole" wrote:
> I created a tabstrip custom control that is declared like this:
>
> <acc:TabStrip ID="Tabs" runat="server" SelectedTabID="aa"
> AutoPostBack="true">
> <Tab ID="aa" Text="aa">
> <Template/>
> </Tab>
> <Tab ID="bb" Text="bb"/>
> <Template>
> <asp:Panel ID="test" ..... or any other control />
> </Template>
> </Tab>
> </acc:TabStrip>
>
> I am using <ControlBuilder(GetType(TabStrip.ControlBuilder)),
> ParseChildren(False)> attributes on the TabStrip Class and overrided
> AddParsedSubObject() to add the Tabs to a collection of type
> StateManagedCollection. Then somewhere in PreRender as I am iterating
> through the collection I am doing this
> "objTab.Template.InstantiateIn(objTableCell)" to place the contents of the
> template in a TableCell that is being rendered by the TabStrip control.
> Everything renderes and operates properly, however, as a control consumer, I
> have not found a way to access any of the controls contained in the
> template. In the example above I can not access the control with ID="test"
> in the code behind so if I wanted to change any properties of these
> controls, on post back, I could not. How should I change my implementation
> to allow my consumers to access the controls contained in the <Template>
> tags.
>
> Perry
>
>