In this article we will be seeing how to create custom properties for visual webpart in SharePoint 2010.

Steps Involved:

  • Open Visual Studio 2010.
  • Create an "Empty SharePoint Project".
  • Right click on the solution and click on Add => New Item.
  • Select "Visual Web Part" template from SharePoint 2010 installed templates.
  • Entire solution looks like the following

    share1.gif
  • Replace CustomPropertiesVisualWP.cs file with the following code.

    using System;
    using System.ComponentModel;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;

    namespace CustomProperties.CustomPropertiesVisualWP
    {
    [ToolboxItemAttribute(false)]
    public class CustomPropertiesVisualWP : WebPart
    {
    public static string _value;
    [System.Web.UI.WebControls.WebParts.WebBrowsable(true),
    System.Web.UI.WebControls.WebParts.WebDisplayName("Enter the Value"),
    System.Web.UI.WebControls.WebParts.WebDescription(""),
    System.Web.UI.WebControls.WebParts.Personalizable(
    System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared),
    System.ComponentModel.Category("anavijai Custom Properties"),|
    System.ComponentModel.DefaultValue("")]

    public string _Value
    {
    get { return _value; }
    set { _value = value; }
    }

    // Visual Studio might automatically update this path when you change the Visual Web Part project item.
    private const string _ascxPath = @"~/_CONTROLTEMPLATES/CustomProperties/CustomPropertiesVisualWP/CustomPropertiesVisualWPUserControl.ascx";

    protected override void CreateChildControls()
    {
    Control control = Page.LoadControl(_ascxPath);
    Controls.Add(control);
    }
    }
    }

  • In CustomPropertiesVisualWPUserControl.ascx I have added one label "lblResult" and button "btnClick".
  • Replace CustomPropertiesVisualWPUserControl.ascx.cs with the following code.

    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.ComponentModel;

    namespace CustomProperties.CustomPropertiesVisualWP
    {
    public partial class CustomPropertiesVisualWPUserControl : UserControl
    {

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void btnClick_Click(object sender, EventArgs e)
    {
    lblResult.Text = CustomPropertiesVisualWP._value;
    }
    }
    }

  • Build and deploy the solution.
  • Go to the SharePoint Site =>Site Actions =>Edit Page =>Editing Tools => Insert =>Web Part =>Categories => Custom =>Select CustomPropertiesVisualWP.
  • Click on Add.
  • The web part looks like the following with a button.

    share2.gif
  • Edit the webpart you could see a new custom category in the webpart properties.

    share3.gif

  • Enter the value and click on Ok.

    share4.gif
  • In the CustomPropertiesWP click on the button.

    share5.gif