I added a new property CustomRenderTo property to all the Component controls which allows you to override the default RenderTo property without having to set a CustomConfig.
Example
<%@ Page Language="C#" %>
<%@ Register assembly="Coolite.Ext.Web" namespace="Coolite.Ext.Web" 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 id="Head1" runat="server">
*** <title>Simple Constrain Window</title>
</head>
<body>
*** <ext:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" />
***
*** <ext:Panel
******* ID="Panel1"
******* runat="server"
******* Title="My Panel"
******* Width="500"
******* Height="350"
******* Html="testing..."
******* />
*******
*** <ext:Window
******* ID="Window1"
******* runat="server"
******* Title="My Window"
******* Height="185"
******* Width="300"
******* Constrain="true"
******* CustomRenderTo="={#{Panel1}.getBody()}"
******* />
</body>
</html>
The CustomRenderTo property also demonstrates wrapping a value in tokens. The inner "clientid token" (
#{ID}) will replace the controls .ID property with it's .ClientID. All controls are created on the client (browser) using their .ClientID property, which is unique and can be different than the server-side .ID property.
The outer "raw script token" (
={something}) will ensure the property is rendered a raw value instead of the default string which wraps the value in double quotes.
Example
// Set property with tokens...
CustomRenderTo="={#{Panel1}.getBody()}"
// renders the following to the client...
renderTo: Panel1.getBody(),
// Set property without tokens...
CustomRenderTo="Panel1.getBody()"
// renders the following to the client, which will not execute properly
renderTo: "Panel1.getBody()",
This new CustomRenderTo property will be included publicly with the v0.8.0 release.
Hope this helps.