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>
 
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.
 
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>"))
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,810
Latest member
Kassie0918

Latest Threads

Top