More in this section

Forums / General Discussions / Problems with Custom Designer Tutorial

Problems with Custom Designer Tutorial

2 posts, 0 answered
  1. mario
    mario avatar
    23 posts
    Registered:
    08 Aug 2011
    06 Sep 2011
    Link to this post
    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();
  2. mario
    mario avatar
    23 posts
    Registered:
    08 Aug 2011
    06 Sep 2011
    Link to this post
    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
2 posts, 0 answered