Problems with Custom Designer Tutorial

Posted by Community Admin on 03-Aug-2018 21:13

Problems with Custom Designer Tutorial

All Replies

Posted by Community Admin on 06-Sep-2011 00:00

Hi team,

I've been following this tutorial with sitefinity 4.2
with no real effects in the properties editor of the widget. (screenshot attached)

please watch my attached code for some inconsistences


thanks!


ucBannerDesignerTemplate.ascx

<div>
    <asp:TextBox ID="tb1" runat="server"></asp:TextBox>
</div>

ucBanner.ascx
<%@ Control Language="C#" %>
<div>
    <h1>SOMETEXT</h1>
    <asp:Literal ID="LikeBoxHtml" runat="server" />
</div>

ucBannerDesigner.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//
using Telerik.Sitefinity;
using Telerik.Sitefinity.Web.UI.ControlDesign;
 
namespace SitefinityWebApp.UserControls
    public class ucBannerDesigner : ControlDesignerBase
    
        // embedded resources
        private const string LayoutTemplateReference = "SitefinityWebApp.UserControls.ucBanner.ucBannerDesignerTemplate.ascx";
        private const string DesignerScriptReference = "SitefinityWebApp.UserControls.ucBanner.ucBannerDesigner.js";
 
        protected override void InitializeControls(Telerik.Sitefinity.Web.UI.GenericContainer container)
        
            base.DesignerMode = ControlDesignerModes.Simple;
        
 
        protected override string LayoutTemplateName
        
            get
            
                return null;
            
        
 
        public override string LayoutTemplatePath
        
            get
            
                return "~/TestUserControls/" + LayoutTemplateReference;
            
            set
            
                base.LayoutTemplatePath = value;
            
        
 
        public override IEnumerable<System.Web.UI.ScriptReference> GetScriptReferences()
        
            var res = new List<System.Web.UI.ScriptReference>(base.GetScriptReferences());
            var assemblyName = this.GetType().Assembly.GetName().ToString();
            res.Add(new System.Web.UI.ScriptReference(DesignerScriptReference, assemblyName));
            return res.ToArray();
        
    

ucBanner.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
//
using Telerik.Sitefinity.Web.UI;
using Telerik.Sitefinity.Web.UI.ControlDesign;
using System.Text;
using Telerik.Sitefinity;
 
namespace SitefinityWebApp.UserControls
    [ControlDesigner(typeof(SitefinityWebApp.UserControls.ucBannerDesigner))]
    public partial class ucBanner : SimpleView
    
        #region properties
        private string _srcImagen = "http://www.fusiona.cl/images/imgLogoFusiona.jpg";
        private string _link = "http://www.fusiona.cl/";
        private string _linkTarget = "en un lightbox";
        private string _lboxWidth = "640";
        private string _lboxHeight = "480";
 
        public string srcImagen
        
            get return _srcImagen;
            set _srcImagen = value;
        
 
        public string link
        
            get return _link;
            set _link = value;
        
 
        public string linkTarget
        
            get return _linkTarget;
            set _linkTarget = value;
        
 
        public string lboxWidth
        
            get return _lboxWidth;
            set _lboxWidth = value;
        
 
        public string lboxHeight
        
            get return _lboxHeight;
            set _lboxHeight = value;
        
        #endregion
 
        protected virtual TextBox tb1
        
            get return this.Container.GetControl<TextBox>("tb1", true);
            set this.tb1.Text = value.Text;
        
 
        protected override string LayoutTemplateName
        
            get return null;
        
 
        public override string LayoutTemplatePath
        
            get
            
                return "~/TestUserControls/" +"SitefinityWebApp.UserControls.ucBanner.ucBanner.ascx";               
            
            set
            
                base.LayoutTemplatePath = value;
            
        
 
        protected override void InitializeControls(GenericContainer container)
        
            tb1.Text = "test string";
        
    


ucBannerDesigner.js
Type.registerNamespace("SitefinityWebApp.UserControls");
 
SitefinityWebApp.UserControls.ucBannerDesigner = function (element)
    SitefinityWebApp.UserControls.ucBannerDesigner.initializeBase(this, [element]);
 
SitefinityWebApp.UserControls.ucBannerDesigner.prototype =
    initialize: function ()
        SitefinityWebApp.UserControls.ucBannerDesigner.callBaseMethod(this, 'initialize');
    ,
    dispose: function ()
        SitefinityWebApp.UserControls.ucBannerDesigner.callBaseMethod(this, 'dispose');
    ,
    refreshUI: function ()
        var data = this._propertyEditor.get_control();
        jQuery("#tb1").val(data.tb1);
 
    ,
    applyChanges: function ()
 
        var controlData = this._propertyEditor.get_control();
 
        controlData.tb1 = jQuery("#tb1").val();
    ,
    get_controlData: function ()
        return this.get_propertyEditor().get_control();
    ,
    get_propertyEditor: function ()
        return this._propertyEditor;
    
 
SitefinityWebApp.UserControls.ucBannerDesigner.registerClass('SitefinityWebApp.UserControls.ucBannerDesigner', Telerik.Sitefinity.Web.UI.ControlDesign.ControlDesignerBase);
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

Posted by Community Admin on 06-Sep-2011 00:00

Not help necessary by now... i'm already solve it

the problem was in the file "ToolboxesConfig.config"

<!--<add enabled="True" type="~/UserControls/ucBanner/ucBanner.ascx" title="ucBanner" visibilityMode="None" name="ucBanner" />-->
 
replaced with:
 
            <add enabled="True" type="SitefinityWebApp.UserControls.ucBanner, SitefinityWebApp" title="ucBanner" visibilityMode="None" name="ucBanner" />

and now I can see the layout defined in the Template.ascx file

This thread is closed