Nov 03, 2011, 2:34 AM
[1.2] Bug: FitLayout fails to render if in UserControl that is Loaded at runtime
Test.aspx
Test.ascx
See below for error of rendered output
<%@ Page Language="C#" MasterPageFile="~/temp.master" %>
<%@ Register src="/Test.ascx" tagname="Test" tagprefix="uc" %>
<script runat="server">
protected void Page_Load( object sender, EventArgs e ) {
ph.Controls.Add( LoadControl( "~/Test.ascx" ) );
}
</script>
<asp:Content ID="c" ContentPlaceHolderID="cp" Runat="Server">
<asp:PlaceHolder ID="ph" runat="server" />
</asp:Content>
Temp.master
<%@ Master Language="C#" AutoEventWireup="true" %>
<!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">
<body>
<form id="f" runat="server">
<ext:ResourceManager ID="rm" runat="server" HideInDesign="true" SourceFormatting="true" CleanResourceUrl="false" />
<ext:Viewport ID="vp" runat="server" MonitorResize="true" >
<Items>
<ext:Panel runat="server" AutoScroll="true" >
<Content>
<asp:ContentPlaceHolder id="cp" runat="server" />
</Content>
</ext:Panel>
</Items>
</ext:ViewPort>
</form>
</body>
</html>
Test.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Test.ascx.cs" Inherits="TestCtl" %>
<ext:FitLayout ID="View" runat="server">
<Items>
<ext:Panel runat="server" Title="Test.ascx" />
</Items>
</ext:FitLayout>
ContentControl.Add() would solve this problem, except the page cannot gain access to a Ext.Net.Container. Also if FitLayout is removed from the user control Test.ascx, everything runs fine (but layout is required). See below for error of rendered output
Ext.onReady(function(){Ext.QuickTips.init();new Ext.net.Viewport({ id: "ctl00_vp", renderTo: "aspnetForm", monitorResize: true, items: { id: "ctl00_ctl02", contentEl: "ctl00_ctl02_Content", autoScroll: true}, layout: "auto"});{ id: "ctl00_cp_ctl00_ctl00", xtype: "panel", title: "Test.ascx"}}); //]]>
The code above is an oversimplification.
Last edited by michaeld; Nov 03, 2011 at 2:40 AM.