/// <summary> /// Called by the ASP.NET page framework to notify server controls /// that use composition-based implementation to create any child controls /// they contain in preparation for posting back or rendering. /// </summary> protected override void CreateChildControls() { base.CreateChildControls(); //we need a DependencyLoader control bool isNew; UmbracoClientDependencyLoader.TryCreate(this, out isNew); //force it to use the canvas provider ClientDependencyLoader.Instance.ProviderName = CanvasClientDependencyProvider.DefaultName; m_Communicator = new Communicator(); m_Communicator.ID = "Communicator"; Controls.Add(m_Communicator); m_Toolbar = new LiveEditingToolbar(this); m_Toolbar.ID = "Toolbar"; Controls.Add(m_Toolbar); UpdatePanel m_OutputWrapper = new UpdatePanel(); m_OutputWrapper.ID = "OutputWrapper"; Controls.Add(m_OutputWrapper); m_Output = new PlaceHolder(); m_Output.ID = "Output"; m_OutputWrapper.ContentTemplateContainer.Controls.Add(m_Output); }