More in this section
Forums / Sitefinity SDK / Extending Forms Control - Control Designer Empty

Extending Forms Control - Control Designer Empty

The forums are in read-only mode. In case that you want to directly contact the Progress Sitefinity team use the support center. In our Google Plus group you can find more than one thousand Sitefinity developers discussing different topics. For the Stack Overflow threads don’t forget to use the “Sitefinity” tag.
2 posts, 0 answered
  1. Damein
    Damein avatar
    9 posts
    Registered:
    10 Apr 2012
    20 Apr 2012
    Link to this post
    Hi All,
    I have extended the forms control to send email notifications. I've followed the advice here
    http://www.sitefinity.com/devnet/forums/sitefinity-4-x/general-discussions/forms-module-notification.aspx#0 

    Now I want to extend the Control Designer Simple view to add the to address property in but have run into problems.

    I have followed examples here
    http://www.sitefinity.com/blogs/joshmorales/posts/11-09-01/anatomy_of_a_sitefinity_4_widget.aspx 
    And here
    http://www.sitefinity.com/documentation/documentationarticles/developers-guide/how-to/how-to-create-a-coverflow-control/creating-an-empty-silverlight-based-control/creating-a-custom-control 
    To create a simple view.

    I can do this without problems in a simple widget i've built but when trying the same steps with the extended forms widget I've made all I get is a box with no controls.(see attached image)

    Here is some code widget code
    inherits from FormsControl

    [ControlDesigner(typeof(emailFormDesigner))]
    public partial class emailForm : FormsControl

    My Control Designer
    public class emailFormDesigner : ControlDesignerBase
       {
            
           protected override void InitializeControls(Telerik.Sitefinity.Web.UI.GenericContainer container)
           {
               base.DesignerMode = ControlDesignerModes.Simple;
           }
     
           public override string LayoutTemplatePath
           {
               get
               {
                   return _layoutTemplatePath;
               }
               set
               {
                   _layoutTemplatePath = value;
               }
           }
     
           protected override string LayoutTemplateName
           {
               get { return string.Empty; }
           }
     
           public override IEnumerable<ScriptReference> GetScriptReferences()
           {
               // get script collection
               var scripts = base.GetScriptReferences() as List<ScriptReference>;
               if (scripts == null) return base.GetScriptReferences();
     
               scripts.Add(new ScriptReference(_scriptReference));
     
               return scripts.ToArray();
           }
     
           private string _layoutTemplatePath = "~/Sitefinity/UserControls/emailFormTemplate.ascx";
           private string _scriptReference = "~/Sitefinity/UserControls/emailFormDesigner.js";
       }

    template:
     
    public partial class emailFormTemplate : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnInit(e);
        }
    }

    template javascript

    Type.registerNamespace("SitefinityWebApp.Sitefinity.UserControls.emailForm");
     
    SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner = function (element) {
        SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner.initializeBase(this, [element]);
    }
     
    SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner.prototype = {
        initialize: function () {
            SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner.callBaseMethod(this, 'initialize');
        },
        dispose: function () {
            SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner.callBaseMethod(this, 'dispose');
        },
        refreshUI: function () {
            var controlData = this._propertyEditor.get_control();
     
            // bind widget properites to designer
            //jQuery("#txtName").val(controlData.Name);
     
     
        },
        applyChanges: function () {
     
            var controlData = this._propertyEditor.get_control();
     
            // bind designer properties back to widget
            //controlData.Name = jQuery("#txtName").val();
     
        }
    }
     
    SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner.registerClass('SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner', Telerik.Sitefinity.Web.UI.ControlDesign.ControlDesignerBase);
    if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();


    Any help would be appreciated

    Damo 
  2. Quinten
    Quinten avatar
    1 posts
    Registered:
    26 Mar 2012
    13 Jul 2012
    Link to this post
    instead of Type.registerNamespace("SitefinityWebApp.Sitefinity.UserControls.emailForm");

    Try:
    Type.registerNamespace("SitefinityWebApp.Sitefinity.UserControls.emailFormDesigner"); 
2 posts, 0 answered