Saturday, 1 August 2020

Implement Custom SuiteLinks Delegate Control In SharePoint 2013

SuiteLinksDelegate

It is a new delegate control introduced in SharePoint 2013. If you are looking to add a new link just next to “Sites, NewsFeed, SkyDrive” etc, on the top bar of your SharePoint site you can now do that with a new delegate control "SuiteLinksDelegate". The SuiteLinksDelegate control will allow us to modify the default links, 

For Example: To add our own links, in the "suit links".

Header before

Header

Step 1: Create One Empty SharePoint Project and provide the Solution Name and choose the Solution Path and click OK.

Step 2: Deploy the Solution as Farm Solution. Provide the Url in next screen and validate the connection.

Step 3: Add New UserControl to the Project from the Templates and provide a Name to it, in our case it is “MyCustomSuiteLinksDelegate

UserControl

Now our Solution Explorer looks as follows,

MyCustomSuiteLinksDelegate

Step 4: Add reference to Microsoft.SharePoint.Portal dll.

Solution Explorer
 
Ensure your control inherits from MySuiteLinksUserControl like this:
 
public partial class MyCustomSuiteLinksDelegate: MySuiteLinksUserControl

Step 5: Code snippet for the ascx.cs file.
  1. using System;  
  2. using System.Web.UI;  
  3. using System.Web.UI.WebControls;  
  4. using System.Web.UI.WebControls.WebParts;  
  5. using Microsoft.SharePoint;  
  6. using Microsoft.SharePoint.Utilities;  
  7. using Microsoft.SharePoint.WebControls;  
  8. using System.Globalization;  
  9. using System.IO;  
  10. using System.Collections;  
  11. using Microsoft.SharePoint.Portal;  
  12. using Microsoft.SharePoint.Portal.WebControls;  
  13. namespace SuiteBarBrandingDelegate_Example.ControlTemplates.SuiteLinksDelegate_Example  
  14. {  
  15.     public partial class MyCustomSuiteLinksDelegate: MySuiteLinksUserControl
  16.     {  
  17.         protected void Page_Load(object sender, EventArgs e)  
  18.         {}  
  19.         protected override void Render(HtmlTextWriter writer)  
  20.         {  
  21.             writer.RenderBeginTag(HtmlTextWriterTag.Style);  
  22.             writer.Write(".ms-core-suiteLinkList {display: inline-block;}");  
  23.             writer.RenderEndTag();  
  24.             writer.AddAttribute(HtmlTextWriterAttribute.Class, "ms-core-suiteLinkList");  
  25.             writer.RenderBeginTag(HtmlTextWriterTag.Ul);  
  26.             RenderSuiteLink(writer, "http://AboutUs/""About Us""lnkSearchLink"false);  
  27.             RenderSuiteLink(writer, "http://ContactUs/""Contact Us""lnkSearchLink"false);  
  28.             RenderSuiteLink(writer, "http://Feedback""Requisition Manager""lnkSearchLink"false);  
  29.             writer.RenderEndTag();  
  30.             base.Render(writer);  
  31.         }  
  32.     }  
  33. }  
Step 6: Add Elements.xml file to the Solution, provide the name and click Add.

Elements

Step 7: Click on elements.xml file and paste the following code snippet inside the elements tag.
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.     <Elements xmlns="http://schemas.microsoft.com/sharepoint/">  
  3.         <!-- Adding DelegateControl reference to our custom SuiteSuiteLinksDelegate Control -->  
  4.         <Control ControlSrc="/_controltemplates/15/SuiteLinksDelegate_Example\MyCustomSuiteSuiteLinksDelegate.ascx" Id="SuiteLinksDelegate" Sequence="90" /> </Elements>  
Step 8: Final step is to build and deploy, then the SharePoint text will override with the Text of the portal.

The final outcome will look as in the following,

Menu

No comments:

Post a Comment

SharePoint 2013 - Uploading Multiple Attachments To The New Item On List Using JSOM And REST API

  Introduction In this article, we will explore how we can attach multiple attachments to the new item on list using JSOM and REST API. Ther...