/// <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)); }