5. Simple Web parts
What are web parts?
• Web Part is also called a Web Widget, is an
ASP.NET server control which is added to a Web
Part Zone on Web Part Pages by users at run
time. It enable end users to modify the content,
appearance, and behavior of Web pages directly
from a browser.
Possible scopes
• Site Level.
6. Simple Web parts
Two types of web parts
• Pure ASP.Net based web parts
Derived from:- System.Web.UI.WebControls.WebParts.WebPart
– Generic web parts, that can be used in SharePoint and outside the
SharePoint domain.
• SharePoint based web parts
Derived from:- Microsoft.SharePoint.WebPartPages.WebPart
– Only used in the SharePoint domain.
7. Simple Web parts
Further Categorization in Web parts
• Web parts
- A class derived from “Webparts” class
• Visual web parts
- A class derived from “Webparts” but also contains a
user control in this web part.
- Can’t be used in sandboxed solutions.
12. Simple Web parts
Define properties in web parts
The WebBrowseable attribute specifies that the decorated property should appear in the editor component
of the web part. It only allows the end user to modify the property and does nothing about persistence.
The Personalizable attribute specifies that the value of the decorated property must be persisted in the
SharePoint backend, either in the user store (by default) or in the shared store (if the Shared scope is
specified). It only cares about persistence and does nothing about the property presence in the editor
component.
So, if you decorate a property with [WebBrowsable] and not [Personalizable], the end user will be able to
modify it in the editor component but its new value won't be persisted.
Conversely, if you decorate a property with [Personalizable] and not [WebBrowsable], its value will be
persisted but the end user won't be allowed to modify it.
13. Simple Web parts Life Cycle
OnInit
OnLoad
CreateChildControls
OnPreRender
SaveViewState
Site Render
RenderContents
OnUnload
Dispose
21. Advance Level Web parts
Advance Level web parts?
• Web part which contains toolpart, or we add
some custom controls in Web part Editor Tool
part section.
22. Advance Level Web parts
Advance Level web parts?
• Web part which contains Custom Webpart Editor Section
• Two ways to create Custom Editor Part / Toolpart of Web
part
– By inheriting class from
“Microsoft.SharePoint.WebPartPages.ToolPart”
– By Implementing Interface “IWebEditable” on Toolpart class
26. Advance Level Web parts using Toolpart class
Three Level of ToolParts
– WebPartToolPart
– CustomPropertyToolPart
– Add Custom ToolPart
27. Advance Level Web parts using Toolpart class
WebPartToolPart
Default WebPart properties:-
• Appearance
– Title
– Width
– Frame State
– Frame Style
• Layout
– Visible on Page
– Direction
– Zone
– Part Order
• Advanced
– Allow Minimize
– Allow Close
– Allow Zone Change
– Allow Export Sensitive Properties
– Detail Link
– Description
– Help Link
– Icon File (Large)
– Icon File (Small)
– Missing Assembly Error
– Target Audiences
28. Advance Level Web parts using Toolpart class
CustomPropertyToolPart
An additional ToolPart that is added when
custom properties are added to the WebPart
programmatically.
Example:- First Name, Last Name
29. Advance Level Web parts using Toolpart class
CustomToolPart
A toolpart which you have programmatically
created and want to add in web part editor part.
Example:- Derived Classes from
“Microsoft.SharePoint.WebPartPages.ToolPart”
wants to add in the Web part’s Editor section.
30. Advance Level Web parts using Toolpart class
public override Microsoft.SharePoint.WebPartPages.ToolPart[] GetToolParts()
{
PersonDetailsToolPart CustomToolPart_ = new PersonDetailsToolPart();
CustomToolPart_.Title = "Company Details";
Microsoft.SharePoint.WebPartPages.ToolPart[] toolParts = new
Microsoft.SharePoint.WebPartPages.ToolPart[3];
toolParts[0] = new Microsoft.SharePoint.WebPartPages.WebPartToolPart();
toolParts[1] = new Microsoft.SharePoint.WebPartPages.CustomPropertyToolPart();
toolParts[2] = CustomToolPart_;
return toolParts;
}
Override the “GetToolParts()” method in order to add the custom toolpart in to your web part editor
part section.
31. Advance Level Web parts using Toolpart class
Common Webpart Properties
this.AllowMinimize = true/false
this.AllowHide = true/false;
this.AllowClose = false;
this.ChromeType = PartChromeType.None; (if user
wants to remove the border of the web part )
32. Advance Level Web parts using IWebEditable Interface
Steps
- The web part which has the Custom Editor Part must implement the “IWebEditable “interface.
#region IWebEditable Members
EditorPartCollection IWebEditable.CreateEditorParts()
{
// Adding your custom web part editor part (Example:- CustomEditor)
List<EditorPart> editors = new List<EditorPart>();
editors.Add(new CustomEditor());
return new EditorPartCollection(editors);
}
object IWebEditable.WebBrowsableObject
{
get { return this; } // what is being edited :- Returning the Web part itself.
}
#endregion
33. Advance Level Web parts using IWebEditable Interface
Steps
- The Custom Editor Webpart must be inherited from
“EditorPart” class.
- It must overrides two methods.
1- ApplyChanges
Used for copy content from Editor Part to Web part.
2- SyncChanges
Used for Copy content from Web part to Editor Part.