Dec 30, 2008, 11:51 AM
Loading a UserControl (ascx) to a page
Hello,
I'm trying to load a UserControl dynamically into the <Center> in a viewport control and I'm having a rough time accomplishing this.
I have a <asp:PlaceHolder> object and trying to populate the UserControl into this control and I'm getting the following error;
Parent for Layout Control (BorderLayout1) must be a Coolite Container Control, such as Panel, TabPanel, Window, ViewPort, etc.
Is there a better way to get around this ?
If I put the UserControl reference in between the <Body> tags instead of the PlaceHolder, everything works well. But I really want to dynamically load different User Controls.
Codebehind
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
EmployeesList cu = (EmployeesList)Page.LoadControl("EmployeesList.ascx");
this.plhControl1.Controls.Add(cu);
}
}
Main Page HTML<Center MarginsSummary="2 2 2 2">
<ext:Panel ID="Panel2"
runat="server"
Title="Search Result for: "
Border="false">
<Body>
<asp:PlaceHolder ID="plhControl1" runat="server"></asp:PlaceHolder>
</Body>
</ext:Panel>
</Center>
The UserControl HTML
<ext:BorderLayout ID="BorderLayout1" runat="server">
<Center>
<ext:Panel ID="Panel2" runat="server" Title="" Header="false">
<Body>
<ext:FitLayout ID="FitLayout1" runat="server">
<ext:GridPanel ID="GridPanel1" runat="server" StoreID="storeUserList" Frame="true">
<columnmodel id="ColumnModel2" runat="server">
<Columns>
<ext:RowNumbererColumn />
<ext:Column ColumnID="systemUserID" Header="User Id" DataIndex="SYSTEMUSERID" Width="120"
Hidden="true" />
<ext:Column ColumnID="PersonID" Header="User Id" DataIndex="PERSONID" Width="120"
Hidden="true" />
<ext:Column Header="User Id" DataIndex="USERID" Width="120" />
<ext:Column Header="Last Name" DataIndex="LASTNAME" Width="120" />
<ext:Column Header="First Name" DataIndex="FIRSTNAME" Width="120" />
<ext:Column Header="Middle Name" DataIndex="MIDDLENAME" Width="120" />
<ext:Column Header="Title" DataIndex="TITLE" Width="120" />
<ext:Column ColumnID="Details"
Header="Details"
DataIndex="DETAILS"
Width="50"
Align="Center"
Fixed="true"
MenuDisabled="true"
Resizable="false">
<Renderer Fn="employeeDetailsRender" />
</ext:Column>
</Columns>
</columnmodel>
<plugins>
<ext:GridFilters runat="server" ID="GridFilters1" Local="true">
<Filters>
<ext:StringFilter DataIndex="LASTNAME" />
<ext:StringFilter DataIndex="FIRSTNAME" />
<ext:StringFilter DataIndex="TITLE" />
</Filters>
</ext:GridFilters>
</plugins>
<selectionmodel>
<ext:RowSelectionModel runat="server" SingleSelect="true">
</ext:RowSelectionModel>
</selectionmodel>
<bottombar>
<ext:PagingToolBar ID="PagingToolBar2" runat="server" PageSize="18"/>
</bottombar>
<loadmask showmask="true" />
</ext:GridPanel>
</ext:FitLayout>
</Body>
</ext:Panel>
</Center>
</ext:BorderLayout>
<ext:Store ID="storeUserList" runat="server" OnRefreshData="Refresh_Employee">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="SYSTEMUSERID" />
<ext:RecordField Name="PERSONID" />
<ext:RecordField Name="USERID" />
<ext:RecordField Name="LASTNAME" />
<ext:RecordField Name="FIRSTNAME" />
<ext:RecordField Name="MIDDLENAME" />
<ext:RecordField Name="TITLE" />
<ext:RecordField Name="DETAILS" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
Thank you in advance,