Search This Blog

Saturday, June 28, 2014

Library QA 1



Question -http://www.dotnetspark.com/DotNetQuestion/index.aspx?cate=9

Type Of Web Part:-
1-ASP.NET Web Parts -

The ASP.NET-style Web Parts have a dependency on [System.Web.dll] and must inherit from the WebPart base class in the [System.Web.UI.WebControls.WebParts] namespace.


Note:-

If you are creating your Web Part specifically for a SharePoint site, and it will consume the SharePoint Foundation object model, you can derive from the ASP.NET System.Web.UI.WebControls.WebParts.WebPart base class and add a reference to the SharePoint object model in your project.

2-SharePoint-based Web Parts — These Web Parts have a dependency on [Microsoft.SharePoint.dll ] and must inherit from the WebPart base class in the [Microsoft.SharePoint.WebPartPages] namespace. These Web Parts can only be used in SharePoint websites.

Custom Web Parts :-


“Create user interface elements that support both customization and personalization.”

Customization :-Changes are seen by all site members
Personalization. changes are seen only by the user who made them.

Custom Properties in SharePoint 2010 Visual Web Parts :-

Basic steps to add a custom property are;
1-Add a custom property in “VisualWebPart1.cs” Web Part class
2-Make above custom property visible to “VisualWebPart1UserControl.ascx” User Control
3-Access custom property from the User Control

Custom properties Of  different controls

1-bool  -> Check box
2-enum  -> Dropdown list
3-int  -> Text box
4-string  -> Text box
5-DateTime -> Text box




1. Add a custom property in “VisualWebPart1.cs” Web Part class

My custom property will be an enum value to select control mode between Simple, Standard and
Advanced.


public enum ControlModes
{
Simple,
Standard,
Advanced
}

/// <summary>
/// This property will be displayed as a drop-down list in the property pane.
/// </summary>
[DefaultValue(ControlModes.Standard)]
[Description("Select a category from the dropdown list.")]
[WebBrowsable(true)]
[Personalizable()]
public ControlModes ControlMode
{
get; set;
}


2. Make custom property visible to “VisualWebPart1UserControl.ascx” User Control

Here we need to change “CreateChildControls” method implementation of the “VisualWebPart1.cs”
class to pass the value of our custom property to the User Control. Here if we pass the
WebPart class itself as a property, we can simply access several custom properties by less
code.

User Control Property
public VisualWebPart1 WebPartControl { get; set; }

“CreateChildControls” in “VisualWebPart1.cs”
protected override void CreateChildControls()
{
VisualWebPart1UserControl control = Page.LoadControl(_ascxPath) as
 VisualWebPart1UserControl;
if (control != null)
{
   control.WebPartControl = this;
}
Controls.Add(control);
}


3. Access custom property from the User Control

public VisualWebPart1.ControlModes ControlMode
{
get
{
   return this.WebPartControl.ControlMode;
}
}

Once deployed and added this Web Part to a page, we can go to Web Part properties by selecting “Edit Web Part” option.

We can see our custom property in the Property Pane under “Miscellaneous” section. Description attribute we added can be seen as a tooltip here.


Here is my complete code for “VisualWebPart1.cs” Web Part class and “VisualWebPart1UserControl.ascx” User Control.

VisualWebPart1.cs


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

namespace CustomProperty.VisualWebPart1
{
[ToolboxItemAttribute(false)]
public class VisualWebPart1 : WebPart
{
   // Visual Studio might automatically update this path when you change the
   // Visual Web Part project item.
   private const string _ascxPath =      @"~/_CONTROLTEMPLATES/CustomProperty/VisualWebPart1/
  VisualWebPart1UserControl.ascx";

   public enum ControlModes
   {
       Simple,
       Standard,
       Advanced
   }

   /// <summary>
   /// This property will be displayed as a drop-down list in the
   /// property pane.
   /// </summary>
   [DefaultValue(ControlModes.Standard)]
   [Description("Select a category from the dropdown list.")]
   [WebBrowsable(true)]
   [Personalizable()]
   public ControlModes ControlMode
   {
       get;
       set;
   }

   protected override void CreateChildControls()
   {
       VisualWebPart1UserControl control = Page.LoadControl(_ascxPath) as
         VisualWebPart1UserControl;
       if (control != null)
       {
           control.WebPartControl = this;
       }
       Controls.Add(control);
   }
}
}











VisualWebPart1UserControl.ascx



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

namespace CustomProperty.VisualWebPart1
{
public partial class VisualWebPart1UserControl : UserControl
{
   public VisualWebPart1 WebPartControl { get; set; }

   public VisualWebPart1.ControlModes ControlMode
   {
       get
       {
           if (this.WebPartControl != null)
           {
               // User selected value.
               return this.WebPartControl.ControlMode;
           }
           else
           {
               // Default value.
               return VisualWebPart1.ControlModes.Standard;
           }
       }
   }

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








Benifit custom Web Parts:-

1-Create custom properties: - that you can display and modify in the user interface.

2-Improve performance and scalability:-.  A compiled custom Web Part runs faster than a script.

3-Implement proprietary code :-  without disclosing the source code.

4-Secure and control access to content:-   within the Web Part. Built-in Web Parts enable any users who have the appropriate permissions to change content and alter Web Part functionality. With a custom Web Part, you can determine the content or properties to display to users, regardless of their permissions.

5-Make your Web Part connectable:-,  allowing Web Parts to provide or access data from other connectable Web Parts.

6-Interact with object models :-   that are exposed in SharePoint Foundation. For example, you can create a custom Web Part to save documents to a SharePoint Foundation document library.

7-Control the Web Part cache :-  by using built-in cache tools. For example, you can use these tools to specify when to read, write, or invalidate the Web Part cache.

8-Benefit from a rich development environment:-   with debugging features that are provided by tools such as Microsoft Visual Studio 2010.

9-Create a base class for other Web Parts to extend.:-For example, to create a collection of Web Parts that have similar features and functionality, create a

10-custom base class :-  from which multiple Web Parts can inherit. This reduces the overall cost of developing and testing subsequent Web Parts.

11-Control Web Part implementation. For example, you can write a custom server-side Web Part that connects to a back-end database, or you can create a Web Partthat is compatible with a broader range of Web browsers.

Connectable Web Parts :-

"Standardized set of interfaces called connection interfaces that allow Web Parts to exchange information with one another at run time."


For example, the List Web Part that is built into SharePoint Foundation can provide (send) a row of data to any other Web Part that can consume (receive) that row, such as a Web Part that implements a form to display the row.

No comments:

Post a Comment