all groups > asp.net webcontrols > october 2006 >
You're in the

asp.net webcontrols

group:

Can a repeater's ItemTemplate instantiate derived classes?



Can a repeater's ItemTemplate instantiate derived classes? Big Daddy
10/26/2006 11:25:07 AM
asp.net webcontrols: I would like to have a repeater class like this:

<asp:Repeater ID="CriteriaRepeater" runat="server" >
<ItemTemplate>
<uc1:BaseControl ID="BaseControl1" BindData='<%#
Container.DataItem %>' runat="server" />
</ItemTemplate>
</asp:Repeater>

The thing that is getting repeated for each item in the datasource is a
user control that is a base class. I would like it to actually create
different controls that are devired from the base control, depending on
the values in the datasource. For example, if there are three classes
derived from BaseControl1 (DerivedControl1, DerivedControl2,
DerivedControl3), if the datasource has three records, the repeater
would be able to create one instance of each of the derived classes
rather than three instances of the base class. Is this possible?

Thanks in advance,
John
Re: Can a repeater's ItemTemplate instantiate derived classes? Phil H
10/29/2006 1:23:28 PM
Dear John

In my opinion (for what it's worth) it is doubtful that the runtime is
that clever.

Any controls types that are created which can be handled by predefined
post-back events have to be declared explicitly in the template.

I will happlily be proved wrong but I came up against something similar
to this myself. I wanted to create link-button controls
programmatically in a DataList control or table. The trouble is that
you can't write event handlers on the fly at runtime. The solution for
me was to create hyperlinks in a table object that generated
Querystring parameters in the navigateUrl property.

If anyone knows a better way I'd be grateful and am sure a similar
technique would help John.

Phil Hall

[quoted text, click to view]
AddThis Social Bookmark Button