add server controls to the templates for the DataList control.


J

Jon Paal

how do I load controls to the templates for the DataList control.

<asp:datalist id="dl1" runat="server" >
<ItemTemplate>

" how to load control(s) here ????"

</ItemTemplate>
</asp:datalist>
 
Ad

Advertisements

N

Nathan Sokalski

You basically put a server control such as a Panel or a <div
id="divOtherCtrls" runat="server"></div> (remember to declare the div or
other HTML control if you use one) in the <ItemTemplate></ItemTemplate>
tags. Then, to add the controls, use the Add() method of the Panel or div's
Controls property. To do this, you would use code such as:

CType(e.Item.FindControl("divOtherCtrls"),HtmlContainerControl).Controls.Add(YourNewControl)

This code must be placed inside either the ItemCreated or ItemDataBound
events, otherwise the e object will not be available. Feel free to ask if
you have any trouble.
 
Ad

Advertisements

J

Jon Paal

Although I appreciate your offer to help, I couldn't understand/implement either of the suggested solutions.

Since I couldn't get the datalist to work, I found an alternate approach to organize the display of dynamic controls into a page.
To keep it simple, I used a placeholder(ph1) in the html and I did this in the page_load code:

------------------------------------------------------
ph1.Controls.Add (New LiteralControl("<table>"))
For each oItem in arrMyControlList
ph1.Controls.Add (New LiteralControl("<tr><td>"))
ph1.Controls.Add( oItem.A)
ph1.Controls.Add (New LiteralControl("</td><td>"))
ph1.Controls.Add( oItem.B )
ph1.Controls.Add (New LiteralControl("</td></tr>"))
Next
ph1.Controls.Add (New LiteralControl("</table>"))
 

Top