Saturday, April 18, 2009

Adding Breadcrumb Navigation for SharePoint Application Pages Programmatically





style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">When
creating a new Application Page (an .aspx page deployed to the c:\program
files\common files\microsoft shared\web server extensions\12\template\layouts
directory) you can easily manually fill the content place holder provided by
the application.master in order to obtain a page that seems really to be an Out
of The Box SharePoint Application Page.

Page Title (Browser Page
Title)

<style="COLOR: #a31515">asp:style="COLOR: #a31515">Content IDstyle="COLOR: blue">="Content4" style="COLOR: red">ContentPlaceHolderIDstyle="COLOR: blue">=style="COLOR: blue">"PlaceHolderPageTitle" style="COLOR: red">runat=style="COLOR: blue">"server"style="COLOR: blue">>
    style="COLOR: blue"><style="COLOR: #a31515">SharePoint:style="COLOR: #a31515">EncodedLiteral style="COLOR: red">ID=style="COLOR: blue">"EncodedLiteral2" style="COLOR: red">runat=style="COLOR: blue">"server" Textstyle="COLOR: blue">="Delete Items"
EncodeMethodstyle="COLOR: blue">='HtmlEncode' style="COLOR: blue">/>
</style="COLOR: #a31515">asp:style="COLOR: #a31515">Contentstyle="COLOR: blue">>

Page Title (Displayed in th
Application Page)

<style="COLOR: #a31515">asp:style="COLOR: #a31515">Content IDstyle="COLOR: blue">="Content3" style="COLOR: red">ContentPlaceHolderIDstyle="COLOR: blue">=style="COLOR: blue">"PlaceHolderPageTitleInTitleArea" style="COLOR: red">runat=style="COLOR: blue">"server"style="COLOR: blue">>
    style="COLOR: blue"><style="COLOR: #a31515">SharePoint:style="COLOR: #a31515">EncodedLiteral style="COLOR: red">ID=style="COLOR: blue">"EncodedLiteral1" style="COLOR: red">runat=style="COLOR: blue">"server" Textstyle="COLOR: blue">="Delete Items from a
Custom List"
EncodeMethodstyle="COLOR: blue">='HtmlEncode' style="COLOR: blue">/>
</style="COLOR: #a31515">asp:style="COLOR: #a31515">Contentstyle="COLOR: blue">>

Page Description (Displayed in th
Application Page)

<style="COLOR: #a31515">asp:style="COLOR: #a31515">Content IDstyle="COLOR: blue">="Content2" style="COLOR: red">ContentPlaceHolderIDstyle="COLOR: blue">=style="COLOR: blue">"PlaceHolderPageDescription" style="COLOR: red">runat=style="COLOR: blue">"server"style="COLOR: blue">>
    style="COLOR: blue"><style="COLOR: #a31515">SharePoint:style="COLOR: #a31515">EncodedLiteral style="COLOR: red">ID=style="COLOR: blue">"EncodedLiteral3" style="COLOR: red">runat=style="COLOR: blue">"server" Textstyle="COLOR: blue">="Use this page to delete
items from a Custom List"
style="COLOR: red">EncodeMethod=style="COLOR: blue">'HtmlEncode' style="COLOR: blue">/>
</style="COLOR: #a31515">asp:style="COLOR: #a31515">Contentstyle="COLOR: blue">>

The above code sample will produce the
following result:







style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">There
is one thing that you cannot perform manually using Content Place Holder, it is the
Breadcrumb Navigation.


style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">You
have two ways of adding Breadcrumb Navigation for SharePoint Application
Pages:



  1. style="MARGIN-TOP: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; MARGIN-BOTTOM: 5px; COLOR: gray; FONT-FAMILY: arial; TEXT-ALIGN: justify">Adding
    a siteMapNode element in the layouts.sitemap
    href="http://weblogs.asp.net/members/jantie.aspx">Jan Tielens has
    written several posts on that topic. The exposed several approaches use xml
    files and deployment techniques in order to make your custom Application Page to
    be known by SharePoint as one of its native Application Pages. Doing that allows
    the native SharePoint breadcrumb generating mechanism to place automatically a
    Breadcrumb in your custom Application Page.

  2. style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">For
    more information you can visit:


    href="http://weblogs.asp.net/jan/archive/2007/09/10/adding-breadcrumb-navigation-for-sharepoint-application-pages.aspx">Adding
    Breadcrumb Navigation for SharePoint Application Pages



    href="http://weblogs.asp.net/jan/archive/2008/04/16/adding-breadcrumb-navigation-to-sharepoint-application-pages-the-easy-way.aspx">Adding
    Breadcrumb Navigation to SharePoint Application Pages, the Easy Way



    href="http://weblogs.asp.net/jan/archive/2008/10/10/adding-breadcrumb-navigation-to-application-pages-in-sharepoint-central-administration.aspx">Adding
    Breadcrumb Navigation to Application Pages in SharePoint Central
    Administration



  3. style="MARGIN-TOP: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; MARGIN-BOTTOM: 5px; COLOR: gray; FONT-FAMILY: arial; TEXT-ALIGN: justify">Adding
    Breadcrumb Programmatically

  4. style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">This
    approach uses server-side code (C# or VB .Net). It is the opposite approach compared to Jan's one because we will customize SharePoint only at the page level.



    style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">Pros:
    Your
    SharePoint customizations of the Application Page stay at the level of the
    page, so you can deploy all using a single Feature.
    You can build your own
    navigation (SiteCollection Root Web > Web Site1 >..> Web Site
    n,  Web Site n > List, Web Site n > Doc Lib,
    etc.) 

    Cons:
    You have to decide about what navigation you
    want.
    You have to build the navigation using C# or VB .Net.
    You might
    have to put parameters in the URL when calling the page (List ID, Doc Lib ID,
    Page Name,etc.) if you do not use a href="http://msdn.microsoft.com/en-us/library/ms460194.aspx">CustomAction
    Element
     to call the Application Page.



style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">In
the following code sample I will programmatically, using C#, add a breadcrumb to an Application Page called by a new entry in the Action Menu of a list.

So, with this
UrlAction
:


style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">style="COLOR: blue"><UrlAction
Url=style="COLOR: black">"~site/_layouts/custom
directory/myCustomApplicationPage.aspx?id={ListId}
style="COLOR: black">"/>


style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">style="COLOR: blue"> 


style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">The
steps are the followings:


  • style="MARGIN-TOP: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; MARGIN-BOTTOM: 5px; COLOR: gray; FONT-FAMILY: arial; TEXT-ALIGN: justify">At
    the first Load of the page 


    Getting the Breadcrumb element(s) from URL and/or
    SPContext 
    Storing some of the elements in an Hidden Control for the
    PostBack of the page.

  • style="MARGIN-TOP: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; MARGIN-BOTTOM: 5px; COLOR: gray; FONT-FAMILY: arial; TEXT-ALIGN: justify">For
    the Postback
    Getting the
    Breadcrumb element(s) from the Hidden Control.

  • style="MARGIN-TOP: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; MARGIN-BOTTOM: 5px; COLOR: gray; FONT-FAMILY: arial; TEXT-ALIGN: justify">In
    any case
    Building the Breadcrumb
    HTML
    Override the RenderChildren method of the Application page to fill the
    PlaceHolderTitleBreadcrumb with the Breadcrumb HTML 
  • size=2>



    The following code sample shows how to perform these operations using C#:




    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">   
    <style="COLOR: #a31515">asp:style="COLOR: #a31515">Content style="COLOR: red">ID="Content1"color=#000000> ContentPlaceHolderIDstyle="COLOR: blue">="PlaceHolderMain" style="COLOR: red">runatstyle="COLOR: blue">="server">"urn:schemas-microsoft-com:office:office" />


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue"><brcolor=#000000> style="COLOR: blue">/>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue"><brcolor=#000000> style="COLOR: blue">/>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue"><aspstyle="COLOR: blue">:Labelcolor=#000000> IDstyle="COLOR: blue">="lblItemsToDeleteList"
    runatstyle="COLOR: blue">="server"></style="COLOR: #a31515">asp:style="COLOR: #a31515">Labelstyle="COLOR: blue">>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue"><brcolor=#000000> style="COLOR: blue">/>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue"><brcolor=#000000> style="COLOR: blue">/>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue"><inputcolor=#000000> typestyle="COLOR: blue">="hidden" style="COLOR: red">runat="server"color=#000000> idstyle="COLOR: blue">="listid" style="COLOR: blue">/>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">   
    </style="COLOR: #a31515">asp:style="COLOR: #a31515">Contentstyle="COLOR: blue">>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"> 


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">   
    <style="COLOR: #a31515">script style="COLOR: red">runatstyle="COLOR: blue">="server">


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"> style="mso-spacerun: yes">color=#000000>        string
    breadcrumbListLink =
    stringcolor=#000000>.Empty;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"> style="mso-spacerun: yes">color=#000000>        style="COLOR: blue">string breadcrumbWebLink =
    stringcolor=#000000>.Empty;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue">string listUrl = style="COLOR: blue">stringcolor=#000000>.Empty;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: #2b91af">SPList aList = style="COLOR: blue">nullcolor=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue">public style="COLOR: blue">void Page_Load(style="COLOR: blue">object sender, style="COLOR: #2b91af">EventArgs
    e)


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">       
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>           
    if
    (IsPostBack)


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">           
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>               
    //provisioning bread
    crumb


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>               
    using
    (
    SPWeb myWeb =
    SPContextcolor=#000000>.Current.Web)


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">               
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000> 


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>                   
    //get the list ID stored before
    Postback


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    aList = myWeb.Lists[
    newcolor=#000000> Guidcolor=#000000>(listid.Value)];


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    listUrl = Microsoft.SharePoint.Utilities.
    style="COLOR: #2b91af">SPUrlUtilitycolor=#000000>.CombineUrl(myWeb.Url,
    aList.RootFolder.Url);


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>                   
    //server side step to provision the
    bread crumb.


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    breadcrumbWebLink =
    "<a
    href='"
    + myWeb.Url + style="COLOR: #a31515">"'>" + myWeb.Title +
    "</a>"color=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    breadcrumbListLink =
    "<a
    href='"
    + listUrl + style="COLOR: #a31515">"'>" + aList.Title +
    "</a>"color=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">               
    }


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>               
    returncolor=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">           
    }


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000> 


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>           
    using
    (
    SPWeb myWeb =
    SPContextcolor=#000000>.Current.Web)


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">           
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>               
    try


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">               
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    aList = myWeb.Lists[
    newcolor=#000000> Guidcolor=#000000>(Request.QueryString[style="COLOR: #a31515">"id"color=#000000>])];


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000> 


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>                   
    //provisioning bread
    crumb


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    listUrl = SPUrlUtility.CombineUrl(myWeb.Url,
    aList.RootFolder.Url);


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    breadcrumbWebLink =
    "<a
    href='"
    + myWeb.Url + style="COLOR: #a31515">"'>" + myWeb.Title +
    "</a>"color=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    breadcrumbListLink =
    "<a
    href='"
    + listUrl + style="COLOR: #a31515">"'>" + aList.Title +
    "</a>"color=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000> 


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>                   
    //storing the list ID to be retrieved
    after Postback in order to build bread crumb.


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    listid.Value = aList.ID.ToString();


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">               
    }


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>               
    catch


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">               
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">                   
    lblItemsToDeleteList.Text =
    "The list
    does not exist. Check that the page URL is correct and has not been manually
    modified."
    ;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>                   
    returncolor=#000000>;


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">           
    style="mso-spacerun: yes">    }


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">           
    }


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">       
    }


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000> 


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>        style="COLOR: blue">protected style="COLOR: blue">override style="COLOR: blue">void RenderChildren(style="COLOR: #2b91af">HtmlTextWriter
    output)


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">       
    {


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>           
    LiteralControlcolor=#000000> myBreadcrumb = newcolor=#000000> LiteralControlcolor=#000000>(breadcrumbWebLink + " >
    "
    + breadcrumbListLink);


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">           
    Master.FindControl(
    style="COLOR: #a31515">"PlaceHolderTitleBreadcrumb"color=#000000>).FindControl(style="COLOR: #a31515">"ContentMap"color=#000000>).Controls.Add(myBreadcrumb);


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes">style="mso-spacerun: yes">color=#000000>           
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">basestyle="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">color=#000000>.RenderChildren(output);


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">color=#000000>style="mso-spacerun: yes">       
    }


    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">style="mso-spacerun: yes">   
    </style="COLOR: #a31515">scriptstyle="COLOR: blue">>


    style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"
    align=left>style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">style="COLOR: blue"> 







    style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: 10pt; PADDING-BOTTOM: 5px; MARGIN: 1px 0px; COLOR: gray; PADDING-TOP: 5px; FONT-FAMILY: arial; TEXT-ALIGN: justify">I have posted the complete page example in CodePlex :




    href="http://customlistitemsdel.codeplex.com/">SharePoint Delete Items of Custom
    Lists



     

    No comments:

    Post a Comment