using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Web.UI; using System.Web.UI.Design.WebControls; using System.Web.UI.Design; public class WebCartoucheDesigner : CompositeControlDesigner { private WebCartouche _webCartouche; private int _nbRegions = 0; public override void Initialize(IComponent component) { _webCartouche = (WebCartouche)component; base.Initialize(component); } protected override void CreateChildControls() { base.CreateChildControls(); if (_webCartouche.regions != null) { _nbRegions = _webCartouche.regions.Count; for (int cpt = 0; cpt < _nbRegions; cpt++) { _webCartouche.regions[cpt].SetAttribute(DesignerRegion.DesignerRegionAttributeName, cpt.ToString()); } } } }
private int _currentRegion = -1; protected override void OnClick(DesignerRegionMouseEventArgs e) { base.OnClick(e); _currentRegion = -1; if (e.Region != null) { for (int cpt = 0; cpt < _nbRegions; cpt++) { if (e.Region.Name == cpt.ToString()) _currentRegion = cpt; } UpdateDesignTimeHtml(); } }
public override void Initialize(IComponent component) { _webCartouche = (WebCartouche)component; base.Initialize(component); //evite de faire appel manuellement a la methode CreateChildControls() pour le designTimeHtml SetViewFlags(ViewFlags.DesignTimeHtmlRequiresLoadComplete,true); //autorise l'edition de template. SetViewFlags(ViewFlags.TemplateEditing, true); }
public override string GetDesignTimeHtml(DesignerRegionCollection regions) { //necessaire pour initialiser la variable _nbRegions utilisee ci-dessous. this.CreateChildControls(); for (int cpt = 0; cpt < _nbRegions; cpt++) { DesignerRegion r; if (_currentRegion == cpt) r = new EditableDesignerRegion(this, cpt.ToString()); else r = new DesignerRegion(this, cpt.ToString()); regions.Add(r); } if (_currentRegion >= 0 && _currentRegion < _nbRegions) regions[_currentRegion].Highlight = true; return base.GetDesignTimeHtml(regions); }
public override string GetEditableDesignerRegionContent(EditableDesignerRegion region) { IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost)); if (host != null) { ITemplate contentTemplate; if (_currentRegion == 1) { contentTemplate = _webCartouche.ContentTemplate; return ControlPersister.PersistTemplate(contentTemplate, host); } ITemplate titleTemplate; if (_currentRegion == 0) { titleTemplate = _webCartouche.TitleTemplate; return ControlPersister.PersistTemplate(titleTemplate, host); } } return String.Empty; }
public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content) { if (content == null) return; IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost)); if (host != null) { ITemplate template = ControlParser.ParseTemplate(host, content); if (template != null) { if (_currentRegion == 0) { _webCartouche.TitleTemplate = template; } if (_currentRegion == 1) { _webCartouche.ContentTemplate = template; } } } }