Originally Posted by
Daniil
Ok, good that my example works on your side.
To help you I have to know what exactly changes you have applied. Please demonstrate.
master.page
<%@ Master Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Ext.NET Example</title>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Viewport runat="server" Layout="BorderLayout">
<Items>
<ext:Panel
runat="server"
Region="North"
Title="Master North"
Height="200" />
<ext:Panel runat="server" Region="Center" Title="Master Center">
<Content>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
</Content>
</ext:Panel>
</Items>
</ext:Viewport>
</form>
</body>
</html>
User Control 1
<%@ Control Language="C#"%>
<%@ Register TagPrefix="ext" Namespace="Ext.Net" %>
<script runat="server">
protected void Page_Init(object sender, EventArgs e)
{
this.Panel1.Items.Add(new Ext.Net.Button()
{
Text = "Added from the code behind"
});
Control uc = this.LoadControl("TestUC2.ascx");
this.Panel2.ContentControls.Add(uc);
}
</script>
<ext:VBoxLayout runat="server" Align="Stretch">
<BoxItems>
<ext:BoxItem>
<ext:Panel
ID="Panel1"
runat="server"
Title="Buttons"
Height="100">
<Items>
<ext:Button runat="server" Text="Defined in the markup" />
</Items>
</ext:Panel>
</ext:BoxItem>
<ext:BoxItem Flex="1">
<ext:Panel ID="Panel2" runat="server" Title="Content" />
</ext:BoxItem>
</BoxItems>
</ext:VBoxLayout>
Second User Control
<%@ Control Language="C#"%>
<%@ Register TagPrefix="ext" Namespace="Ext.Net" %>
<ext:BorderLayout runat="server">
<North>
<ext:Panel runat="server" Title="Nested North" Height="100" />
</North>
<Center>
<ext:Panel runat="server" Title="Nested Center" />
</Center>
<South Collapsible="true">
<ext:TabPanel runat="server" Height="100">
<Items>
<ext:Panel runat="server" Title="Tab 1" />
<ext:Panel runat="server" Title="Tab 2" />
</Items>
</ext:TabPanel>
</South>
</ext:BorderLayout>
page.aspx <- here I made changed Loading control
<%@ Page Title="" Language="C#" MasterPageFile="~/Page.Master" %>
<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>
<script runat="server">
private UserControl ser;
protected UserControl Control
{
get
{
return ViewState["SpecialControl" + ser.ClientID] != null
? (UserControl) ViewState["SpecialControl" + ser.ClientID]
: ser != null ? ser : null;
}
set { ViewState["SpecialControl" + ser.ClientID] = value; }
}
protected void Page_PreInit(object sender, EventArgs e)
{
ser = (UserControl)LoadControl("~/TestUC.ascx");
Control = ser;
}
protected void Page_Init(object sender,EventArgs e)
{
if (Control != null)
ctrContent.ContentControls.Add(Control);
}
</script>
<asp:Content ID="contentContainer" ContentPlaceHolderID="siteContent" runat="server">
<ext:FitLayout ID="FitLayout1" runat="server">
<Items>
<ext:Container runat="server" ID="ctrContent"></ext:Container>
</Items>
</ext:FitLayout>
</asp:Content>
Like you can see I changed only way to LoadControl from markup to codebehind.
Any ideas?