/// <summary>
///
/// </summary>
/// <param name="userControlPath"></param>
/// <param name="controlIdToRender"></param>
/// <param name="mode"></param>
/// <param name="element"></param>
/// <param name="index"></param>
/// <returns></returns>
public virtual string Build(string userControlPath, string controlIdToRender, RenderMode mode, string element, int?index)
{
string id = "ID_" + Guid.NewGuid().ToString().Replace("-", "");
UserControl uc = UserControlRenderer.LoadControl(userControlPath, id);
Page pageHolder = uc.Page;
XControl controlToRender = null;
if (controlIdToRender.IsEmpty())
{
Container ct = new Container {
ID = id, IDMode = IDMode.Explicit
};
pageHolder.Controls.Add(ct);
ct.ContentControls.Add(uc);
controlToRender = ct;
}
else
{
pageHolder.Controls.Add(uc);
XControl c = Ext.Net.Utilities.ControlUtils.FindControl <XControl>(pageHolder, controlIdToRender);
if (c == null)
{
throw new Exception("Cannot find the control with ID=" + controlIdToRender);
}
controlToRender = c;
if (controlToRender.IDMode == IDMode.Inherit)
{
controlToRender.IDMode = IDMode.Explicit;
}
}
return(index.HasValue ? controlToRender.ToScript(mode, element, index.Value, true) : controlToRender.ToScript(mode, element, true));
}