<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB"><title type="html">Share Points</title><subtitle type="html">Development on the SharePoint Platform
&lt;div id="technorati"&gt;
&lt;script type="text/javascript" src="http://embed.technorati.com/embed/4x4cf2uabq.js"&gt;&lt;/script&gt;&lt;/div&gt;</subtitle><id>http://blogs.msdn.com/nigelbridport/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/nigelbridport/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2004-07-07T09:16:00Z</updated><entry><title>What's this tagging about!!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2007/01/16/what-s-this-tagging-about.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2007/01/16/what-s-this-tagging-about.aspx</id><published>2007-01-16T13:39:00Z</published><updated>2007-01-16T13:39:00Z</updated><content type="html">&lt;P&gt;So, thankyou &lt;A class="" title=Liam href="http://www.sharepointblogs.com/helloitsliam/" mce_href="http://www.sharepointblogs.com/helloitsliam/"&gt;Liam&lt;/A&gt;, I have been tagged, whatever that really means.&lt;/P&gt;
&lt;P&gt;The task being to write 5 things about myself that others&amp;nbsp;may not&amp;nbsp;know.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The most important one for me is that I am most definately a family man.&amp;nbsp; I am married with 3 kids.&amp;nbsp; Currently, the eldest is 8, then 3 and a little one at&amp;nbsp;1 (Who still insists on getting me and the wife&amp;nbsp;up in the middle of the night :-(&amp;nbsp;hence why it seems that I am permanently tired during the day and a bit grumpy).&amp;nbsp; Immensly proud of my family and they are number 1.&lt;/LI&gt;
&lt;LI&gt;Been a computer games fan since I can remember (Well, late 70's anyway).&amp;nbsp; I had an&amp;nbsp;Grandstand Pong system which had&amp;nbsp;some "different" games.&amp;nbsp; As different as rearranging the position of your bat I suppose.&amp;nbsp; This meant I could play &lt;EM&gt;Tennis&lt;/EM&gt;, &lt;EM&gt;Squash&lt;/EM&gt;, &lt;EM&gt;Target Shooting&lt;/EM&gt;, &lt;EM&gt;Hockey&lt;/EM&gt;&amp;nbsp;against someone else.&amp;nbsp; Then got an ATARI 2600 console.&amp;nbsp; This was a real revolution at the time and discarded my Pong machine to a friend at school for a fiver.&amp;nbsp; Then got a Texas Instruments &lt;A class="" title="TI 99/4A" href="http://99er.net/ti.shtml" mce_href="http://99er.net/ti.shtml"&gt;TI 99-4A&lt;/A&gt;.&amp;nbsp; This had some really cool games such as &lt;EM&gt;TI Invaders&lt;/EM&gt;, &lt;EM&gt;Munchman&lt;/EM&gt;,&lt;EM&gt;5 A-Side Soccer&lt;/EM&gt;.&amp;nbsp; I can remember&amp;nbsp;spending many hours copying source code from&amp;nbsp;some magazine only to find&amp;nbsp;that I had mistyped something so then spending further hours tediously going over what I had done. &amp;nbsp;Then some Sega consoles, Nintendo and of course Xbox and most recently Xbox 360 (My gamertag is "Baron Sparky") which I love, especially connected up wirelessly to my Media Centre.&lt;/LI&gt;
&lt;LI&gt;"Used" to play a lot of sports.&amp;nbsp; Played a lot of cricket and football when I was young, then squash as I got older.&amp;nbsp; Was in a good side for cricket but the football was not so successful.&amp;nbsp; I was the captain of our local side and I think we won 1 game in 2 seasons :-(&amp;nbsp; Also used to do a lot of Judo and a Korean martial art called &lt;A class="" title="Tang Soo Do" href="http://www.tangsoo.co.uk/History.htm" mce_href="http://www.tangsoo.co.uk/History.htm"&gt;Tang Soo&amp;nbsp;Do&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;I have been with Microsoft UK for nearly 9 years now.&amp;nbsp; Joined from another American company called Digital Equipment Corporation where I used to part of the development team working on email backbones and gateways called MAILbus.&lt;/LI&gt;
&lt;LI&gt;Lifelong &lt;A class="" title="Liverpool FC" href="http://www.liverpoolfc.tv/" mce_href="http://www.liverpoolfc.tv/"&gt;&lt;FONT color=#ff0000&gt;Liverpool FC&lt;/FONT&gt;&lt;/A&gt; supporter.&amp;nbsp; I can still remember the heady days of the 70's where no side could touch them.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;So, who to "tag" next.&amp;nbsp; It has to be 5 of my friends and colleagues here at Microsoft UK who I know have blogs.&amp;nbsp; (Thankfully, most of my friends are not technical apart from those&amp;nbsp;I work with)&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Graham Tyler" href="http://blogs.msdn.com/grahamtyler/" mce_href="http://blogs.msdn.com/grahamtyler/"&gt;Graham Tyler&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Martin Kearn" href="http://blogs.msdn.com/martinkearn/default.aspx" mce_href="http://blogs.msdn.com/martinkearn/default.aspx"&gt;Martin Kearn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Mark Bower" href="http://blogs.msdn.com/bowerm/" mce_href="http://blogs.msdn.com/bowerm/"&gt;Mark Bower&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Paul Holdaway" href="http://blogs.msdn.com/paulholdaway/" mce_href="http://blogs.msdn.com/paulholdaway/"&gt;Paul Holdaway&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Jessica Gruber" href="http://blogs.msdn.com/jessicagruber/default.aspx" mce_href="http://blogs.msdn.com/jessicagruber/default.aspx"&gt;Jessica Gruber&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I have enourmous respect for these guys!&amp;nbsp; We all work for Microsoft in the UK and passionate about the products we work with.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1477966" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>SharePoint Product Team Blog</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2006/01/13/512431.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2006/01/13/512431.aspx</id><published>2006-01-13T12:11:00Z</published><updated>2006-01-13T12:11:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The SharePoint Product team has recently launched their own blog at &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/sharepoint/"&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;http://blogs.msdn.com/sharepoint/&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This is a must read with articles initially from Kurt Delbene, Corporate VP of the Office Servers group, and Jeff Teper, General Manager of&amp;nbsp;SharePoint Portal, Search and Content Management.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;We are promised many more entries from the senior SharePoint development team in the near future.&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=512431" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>80-20 Software - Retention Server for SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2006/01/12/511972.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2006/01/12/511972.aspx</id><published>2006-01-12T14:38:00Z</published><updated>2006-01-12T14:38:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;A great add-on for SharePoint and it is free.&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.80-20.com/retentionserver/"&gt;&lt;FONT face=Verdana size=2&gt;Retention Server &lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;from 80-20 Software has just been formally released!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;FONT face=Georgia&gt;For organizations using Microsoft SharePoint that need to manage&lt;FONT color=#000000&gt; the &lt;/FONT&gt;&lt;FONT color=#000000&gt;retention&lt;/FONT&gt;&lt;FONT color=#000000&gt; lifecycle&lt;/FONT&gt; of electronic documents and email, 80-20 Retention Server is a free enterprise software solution that automates the retention process by applying information retention policies as part of everyday business processes. &lt;/FONT&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;FONT face=Georgia&gt;80-20 Retention Server enables organizations to index, link, store, search, access and ultimately disposes of records stored in SharePoint over their complete lifecycle. &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=511972" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>Updated Search WebPart (Document Details)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2006/01/12/511948.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2006/01/12/511948.aspx</id><published>2006-01-12T12:58:00Z</published><updated>2006-01-12T12:58:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;My previous post supplied a webpart to customise the &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/nigelbridport/archive/2005/12/07/500943.aspx"&gt;&lt;FONT face=Verdana size=2&gt;Search Results&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Thanks to some feedback, we discovered that the search results for Documents stored in a Portal Area was not working correctly, so I have updated the &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/SearchOverrideV2.ZIP"&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;ZIP&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt; &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;with the new code that seems to work.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;However, you may need to configure this one!&amp;nbsp; The issue was found because the SPS index does not carry information, other than URLs, as to whether the result came from a WSS Site or a Portal Area.&amp;nbsp; When the Document was in a Portal Area, the code would malform the URL for the Document Details page.&amp;nbsp; So, the fix I have put in is to see whether the URL has "/sites/" after the Portal URL, i.e. &lt;FONT color=#000080&gt;http://portal&lt;STRONG&gt;/sites/&lt;/STRONG&gt;Bridport&lt;/FONT&gt;.&amp;nbsp; If it does not, then it assumes that the document is for a Portal Area.&amp;nbsp; If it does, then it assumes it is a WSS Document.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Now, I realise that not everyone keeps the default "/sites/" container for their WSS sites so, this is configurable.&amp;nbsp; If your WS Sites container was changed at install/configuration time, then update the new custom property for the webpart as shown below!&lt;/FONT&gt;&lt;/P&gt;&lt;IMG src="http://nigelbridport.members.winisp.net/images/Post09image01.jpg"&gt;&lt;/IMG&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=511948" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>Another Custom Search Result WebPart.  Document Details page in WSS!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2005/12/07/500943.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2005/12/07/500943.aspx</id><published>2005-12-07T14:02:00Z</published><updated>2005-12-07T14:02:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;I was recently asked how to change the search results for SharePoint Portal Server 2003 so that when a user selected a document from the search results, instead of actually opening the document which is the current default behaviour of SPS, that the user should be directed to the documents' details page within the relevant WSS site.&amp;nbsp; This is because typically some users actually want to view the documents details before deciding to open it.&amp;nbsp; This also gives the user the ability to check out the document before opening it, etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;So, the solution we came up with was to change the default search results webpart to look like below:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 650px; HEIGHT: 410px" height=759 src="http://nigelbridport.members.winisp.net/images/Post8image01.jpg" width=855&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The code is pretty easy but got a bit messy with document libraries that has a folder structure within it.&amp;nbsp; But it looks like it works!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;As you can see, there is an option to "To open this document Click Here", instead the URL of the document which is normally displayed by default.&amp;nbsp; On selecting this option, you are taken to the relevant WSS document details page&amp;nbsp;as shown below:&amp;nbsp; (This is also true if you select the document name)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 655px; HEIGHT: 474px" height=759 src="http://nigelbridport.members.winisp.net/images/Post8image02.jpg" width=855&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;For the fully built CAB and source files, and&amp;nbsp;the Visual Studio Project directory, please go &lt;/FONT&gt;&lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/SearchOverrideV2.ZIP"&gt;&lt;FONT face=Verdana color=#0000ff size=4&gt;&lt;STRONG&gt;here&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Extract the files to your SharePoint Portal Server, i.e. your&lt;FONT style="BACKGROUND-COLOR: #ffffff"&gt; &lt;STRONG&gt;&lt;FONT face="Courier New" color=#000080&gt;C:\&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt; root directory.&amp;nbsp;&lt;FONT size=2&gt; (If you extract to another location, then you will have to modify the setup and removal batch files to point to the new location)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Drill down through the &lt;FONT face="Courier New" color=#000080&gt;&lt;STRONG&gt;/Deploy/Debug&lt;/STRONG&gt;&lt;/FONT&gt; directory and there you will find the built CAB and batch files&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Run the &lt;FONT face="Courier New" color=#000080&gt;&lt;STRONG&gt;SearchOverrideSetup.BAT&lt;/STRONG&gt;&lt;/FONT&gt; file and run it or if you are familiar with the STSADM utility, just install the CAB&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;To see the enhanced results in your portal, follow the instructions from my previous thread &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/nigelbridport/archive/2004/10/27/248439.aspx"&gt;&lt;FONT face=Verdana&gt;http://blogs.msdn.com/nigelbridport/archive/2004/10/27/248439.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;But basically:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://%3cspsserver%3e/search.aspx?mode=edit&amp;amp;PageView=Shared"&gt;&lt;FONT face=Verdana&gt;http://&amp;lt;SPSserver&amp;gt;/search.aspx?mode=edit&amp;amp;PageView=Shared&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;on the portal you want to effect&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Browse through your Virtual Server catalog looking for&amp;nbsp;&lt;FONT face=Garamond color=#000080&gt;&lt;STRONG&gt;Search Results Document Detail&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;web part&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Drag it to just below the default &lt;FONT face="Courier New" color=#000080&gt;&lt;STRONG&gt;Search Results&lt;/STRONG&gt;&lt;/FONT&gt; web part&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Close the default &lt;STRONG&gt;&lt;FONT face="Courier New" color=#000080&gt;Search Results&lt;/FONT&gt;&lt;/STRONG&gt; web part (otherwise you will get two sets of results and a script error)&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Go back to your Portals home page and do a search.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;That's it!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;I would be really interested to hear if this works for you and if you make any modifications to it.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=500943" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>Cell Connections, Row Connections and Filter Connections Samples</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2005/07/06/435990.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2005/07/06/435990.aspx</id><published>2005-07-06T12:34:00Z</published><updated>2005-07-06T12:34:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;I said previously that I would post the sample web parts that show the &lt;EM&gt;ICellProvider&lt;/EM&gt;, &lt;EM&gt;ICellConsumer&lt;/EM&gt;, &lt;EM&gt;IRowProvider&lt;/EM&gt;, &lt;EM&gt;IRowConsumer, &lt;/EM&gt;&lt;EM&gt;IFilterProvider&lt;/EM&gt; and &lt;EM&gt;IFilterConsumer&lt;/EM&gt; in action so here they are.&amp;nbsp; Just click below for the appropriate Visual Studio Porject files.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Please note that these samples are written in &lt;STRONG&gt;VB.net&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;There is a bit of setup that you will have to go through that I will try to explain here.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Firstly, install the CAB files from the &lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/CellConnections.zip"&gt;CellConnections.ZIP &lt;/A&gt;and/or the &lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/RowConnections.zip"&gt;RowConnections.ZIP&amp;nbsp;&lt;/A&gt; &lt;/FONT&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;If you only want to use the &lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/CellConnections.zip"&gt;CellConnections &lt;/A&gt;sample, skip the rest of the setup instructions.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;If you also want to see the Row and Filter connections working: &lt;/FONT&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Download &lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/ConnectionResources.zip"&gt;ConnectionResources.ZIP&amp;nbsp; &lt;/A&gt;This is 5MB but is due to the .WMVs that are in there. &lt;STRONG&gt;&lt;FONT color=#000080&gt;(PLEASE NOTE: I have just copied the same smallish WMV with apprpriate names. So they are all the same.&amp;nbsp; Just download the&amp;nbsp;correct WMV from a site and replace this template - The file was just too big for me to be able to host otherwise)&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Create a folder, I created mine at &lt;EM&gt;C:\XBox&lt;/EM&gt;.&amp;nbsp; &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Drop the contents of &lt;EM&gt;XBox&lt;/EM&gt; from &lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/ConnectionResources.zip"&gt;ConnectionResources.ZIP&lt;/A&gt; into the new folder&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Create a new virtual server in IIS that points&amp;nbsp;to that folder as the root.&amp;nbsp; To get the parts working without having to tweak the code, I would put the Virtual Server on port 801, so you can refer the &lt;/FONT&gt;&lt;A href="http://localhost:801/"&gt;&lt;FONT face=Verdana&gt;http://localhost:801&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; and get to the resource files.&amp;nbsp; (Just a few images)&amp;nbsp;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Next, navigate to &lt;STRONG&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\wpresources\RowConnections\1.0.0.0__38a6d1a988993080&lt;/STRONG&gt; because the web parts&amp;nbsp;are strongly named and in the Global Assembly Cache, this folder should already be there. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Drop the contents of &lt;EM&gt;1.0.0.0_38a6d1a988993080&lt;/EM&gt; from the &lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/ConnectionResources.zip"&gt;ConnectionResources.ZIP &lt;/A&gt;into that directory&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;With the CABS installed, you should be already to go!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=4&gt;&lt;U&gt;&lt;STRONG&gt;CellConnections Sample&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Go to the site you want to use and then select to add web parts.&amp;nbsp; From the Virtual Server Gallery, arrange the web parts &lt;EM&gt;Demo21: Cell Provider&lt;/EM&gt;, &lt;EM&gt;Demo22: Cell Consumer (Summary)&lt;/EM&gt;, &lt;EM&gt;Demo23: Cell Consumer (Fields)&lt;/EM&gt; and &lt;EM&gt;Demo24: Cell Connections (Script)&lt;/EM&gt; onto the page and arrange as below:&lt;/FONT&gt;&lt;/P&gt;&lt;IMG style="WIDTH: 855px; HEIGHT: 660px" height=759 src="http://nigelbridport.members.winisp.net/images/Post7image001.jpg" width=855&gt;&lt;/IMG&gt; 
&lt;P&gt;&lt;FONT face=Verdana&gt;Wire them up and then when you click on the &lt;EM&gt;Cell Provider&lt;/EM&gt; List and then &lt;EM&gt;CellReady&lt;/EM&gt;, you will see the other parts change appropriately.&lt;/FONT&gt;&lt;/P&gt;&lt;IMG style="WIDTH: 844px; HEIGHT: 893px" height=1298 src="http://nigelbridport.members.winisp.net/images/Post7image002.jpg" width=844&gt;&lt;/IMG&gt; 
&lt;P&gt;&lt;FONT face=Verdana size=4&gt;&lt;STRONG&gt;&lt;U&gt;RowConnections Sample&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Go to the site you want to use and then select to add web parts.&amp;nbsp; From the Virtual Server Gallery, arrange the web parts &lt;EM&gt;Demo41: Filter Provider&lt;/EM&gt;, &lt;EM&gt;Demo31: Row Provider&lt;/EM&gt;, &lt;EM&gt;Demo32: Row Consumer (Summary)&lt;/EM&gt;, &lt;EM&gt;Demo33: Row Consumer (Video)&lt;/EM&gt;, &lt;EM&gt;Demo34: Row Consumer (Details)&lt;/EM&gt; and &lt;EM&gt;Demo35: Row Consumer (Box Artwork)&lt;/EM&gt; onto the page and arrange as below:&lt;/FONT&gt;&lt;/P&gt;&lt;IMG style="WIDTH: 854px; HEIGHT: 499px" height=452 src="http://nigelbridport.members.winisp.net/images/Post7image003.jpg" width=854&gt;&lt;/IMG&gt; 
&lt;P&gt;&lt;FONT face=Verdana&gt;Wire them up and then when you click on the button on the &lt;EM&gt;Row Provider&lt;/EM&gt; part, the others should respond appropriately.&lt;/FONT&gt;&lt;/P&gt;&lt;IMG height=582 src="http://nigelbridport.members.winisp.net/images/Post7image004.jpg" width=856&gt;&lt;/IMG&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=435990" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>Custom Search Results</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2005/07/06/435969.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2005/07/06/435969.aspx</id><published>2005-07-06T12:02:00Z</published><updated>2005-07-06T12:02:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;For the fully built CAB and source files, the Visual Studio Project directory, please go &lt;/FONT&gt;&lt;A href="http://nigelbridport.members.winisp.net/Development/WebParts/SearchResults.ZIP"&gt;&lt;FONT face=Verdana size=4&gt;&lt;STRONG&gt;here&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;Extract the files to your machine.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Drill down through the "/Deploy/Debug" directory and there you will find the built CAB.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Modify the BAT file and run it or if you are familiar with the STSADM utility, just install the CAB&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;To see the enhanced results in your portal, follow the instructions from my previous thread &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/nigelbridport/archive/2004/10/27/248439.aspx"&gt;&lt;FONT face=Verdana&gt;http://blogs.msdn.com/nigelbridport/archive/2004/10/27/248439.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;But basically:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="http://%3cspsserver%3e/search.aspx?mode=edit&amp;amp;PageView=Shared"&gt;&lt;FONT face=Verdana&gt;http://&amp;lt;SPSserver&amp;gt;/search.aspx?mode=edit&amp;amp;PageView=Shared&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;on the portal you want to effect&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Browse through your Virtual Server catalog looking for &lt;EM&gt;&lt;STRONG&gt;Search Override&lt;/STRONG&gt;&lt;/EM&gt; web part&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Drag it to just below the default &lt;EM&gt;&lt;STRONG&gt;Search Results&lt;/STRONG&gt;&lt;/EM&gt; web part&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Close the default &lt;EM&gt;&lt;STRONG&gt;Search Results&lt;/STRONG&gt;&lt;/EM&gt; web part (otherwise you will get two sets of results&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;Go back to your Portals home page and do a search.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;That's it!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;I would be really interested to hear if this works for you and if you make any modifications to it, what they are so I can get a sense of what you think is missing from the out-of-the-box results.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=435969" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>SharePoint Portal Search Results Demystified (Well starting to)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2005/07/05/435611.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2005/07/05/435611.aspx</id><published>2005-07-05T10:42:00Z</published><updated>2005-07-05T10:42:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana&gt;Recently, I presented at the UK Office Developers Conference at Heathrow.&amp;nbsp; One of the subjects&amp;nbsp;I spoke about was enhancing and extending the Microsoft Office SharePoint Portal Server 2003 Search and I did say that I would post some of that information, as well as the samples I used (including the web part connection samples), up on my blog.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;So, this is the first of a few posts and is about explaining the format of the Search Results and the functions that you as a developer can use to override it to fix it up to look like YOU want.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The next post will be one of the custom Search Results web parts that I demonstrated that uses one of the override functions to add a new button (This will be the built version of a previous post here)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;So...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The Search Results is split into a number of Rows and Columns and looks like:&lt;/FONT&gt;&lt;/P&gt;&lt;IMG style="WIDTH: 648px; HEIGHT: 187px" height=247 src="http://nigelbridport.members.winisp.net/images/Post5image001.jpg" width=818&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can see that each major functional area of the Search Results can be referred to uniquely.&lt;/P&gt;
&lt;P&gt;Now, you can control what each element looks like by using the following functions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR width="100%"&gt;
&lt;TH&gt;&lt;FONT face="Courier New" width="30%"&gt;&lt;EM&gt;Name&lt;/EM&gt;&lt;/FONT&gt;&lt;/TH&gt;
&lt;TH&gt;&lt;FONT face="Courier New" width="70%"&gt;&lt;EM&gt;Description&lt;/EM&gt;&lt;/FONT&gt;&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="30%"&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;protected virtual string GenerateHtmlForItemIcon ( System.Data.DataRow &lt;FONT color=#000080&gt;objectDataRow&lt;/FONT&gt;,&amp;nbsp;int &lt;FONT color=#000080&gt;iIndexOfItemInDataSet&lt;/FONT&gt;, int &lt;FONT color=#000080&gt;iIndexOfItemInGroup&lt;/FONT&gt;, string &lt;FONT color=#000080&gt;strElemIDPrefix&lt;/FONT&gt;) &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width="70%"&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Generates the HTML that displays the icon for the specified DataRow object in the search result set. &lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;iIndexOfItemInDataSet&lt;/FONT&gt;&lt;/EM&gt; Index of row in the result DataSet. &lt;/FONT&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;iIndexOfItemInGroup&lt;/EM&gt;&lt;/FONT&gt; Index of an item in a group when grouping is enabled. This index is used to expand and collapse groups of results. &lt;/FONT&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;objectDataRow&lt;/EM&gt;&lt;/FONT&gt; DataRow that represents a single item. &lt;/FONT&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;strElemIDPrefix&lt;/FONT&gt;&lt;/EM&gt; This element is used for HTML automation and is reserved for internal use only. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Courier New" size=2&gt;protected virtual void GenerateHtmlForRowColumn( System.Data.DataRow &lt;FONT color=#000080&gt;oneDataRow&lt;/FONT&gt;, System.Text.StringBuilder &lt;FONT color=#000080&gt;strColumnHtml&lt;/FONT&gt;, int &lt;FONT color=#000080&gt;iColumn&lt;/FONT&gt;) &lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Generates the HTML for the specified column of data for the specified DataRow object in the search result set.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;oneDataRow&lt;/EM&gt;&lt;/FONT&gt;: Reference to the DataRow in the result set.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;strColumnHtml&lt;/FONT&gt;&lt;/EM&gt;: StringBuilder that contains the HTML for the specified column. HTML is appended to this string. &lt;/FONT&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;iColumn&lt;/FONT&gt;&lt;/EM&gt;: Index of the column with HTML content to modify. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Courier New" size=2&gt;protected virtual void GenerateHtmlOneRowForOneItem( System.Data.DataRow &lt;FONT color=#000080&gt;oneDataRow&lt;/FONT&gt;, class System.Text.StringBuilder &lt;FONT color=#000080&gt;sbRenderRowHtml&lt;/FONT&gt;, int &lt;FONT color=#000080&gt;rowID&lt;/FONT&gt;, string &lt;FONT color=#000080&gt;strStyleClass&lt;/FONT&gt;, int &lt;FONT color=#000080&gt;iIndexOfItemInDataSet&lt;/FONT&gt;, int &lt;FONT color=#000080&gt;iIndexOfItemInGroup&lt;/FONT&gt;) &lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Generates the HTML for the specified column and row of data for the specified DataRow object in the search result set. &lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;oneDataRow&lt;/EM&gt;&lt;/FONT&gt;: DataRow that represents the item in the result set.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;sbRenderRowHtml&lt;/FONT&gt;&lt;/EM&gt;: StringBuilder that contains the HTML for the specified row.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;rowID&lt;/FONT&gt;&lt;/EM&gt;: Index of the row of data to generate. 0 indicates that the first HTML table row.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;strStyleClass&lt;/FONT&gt;&lt;/EM&gt;: Style from the stylesheet that applies to this row. This parameter is reserved for internal use.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;iIndexOfItemInDataSet&lt;/FONT&gt;&lt;/EM&gt;: Index of this item in the result set to render. 0 represents the first item. &lt;/FONT&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;iIndexOfItemInGroup&lt;/FONT&gt;&lt;/EM&gt;: Index of this item in its group. This value is used to expand and collapse the result group in the browser. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT face="Courier New" size=2&gt;protected virtual string GenerateQueryString( string strKeyword, System.Collections.ArrayList &lt;FONT color=#000080&gt;rgScopeList&lt;/FONT&gt;, string &lt;FONT color=#000080&gt;strWhereAndPart&lt;/FONT&gt;, [out] string &lt;FONT color=#000080&gt;strSavedQuery&lt;/FONT&gt;) &lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;Generates the SQL Full-Text Search Syntax query that produces the current result set. • strKeyword: List of keywords specified for this query.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;rgScopeList&lt;/FONT&gt;&lt;/EM&gt; :List of search scopes specified for this query.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;strWhereAndPart&lt;/EM&gt;&lt;/FONT&gt;: WHERE clause for the query.&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;strSavedQuery&lt;/EM&gt;&lt;/FONT&gt;: Out parameter that receives the return value from this method.&lt;/FONT&gt;&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;The next post will demonstrate how to use the GenerateHtmlOneRowForOneItem function in C#&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=435611" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author></entry><entry><title>SPUM2003 X1.1 - (V1.0 will be SPUser.EXE)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/12/16/317419.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/12/16/317419.aspx</id><published>2004-12-16T23:58:00Z</published><updated>2004-12-16T23:58:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Made some progress on SPUM2003 and I have now decided to release version X1.1 for you guys to look at.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Please be aware of the following:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Whats in over version X1.0&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Ability to add users to a WSS site&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Ability to delete users from a WSS site&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Ability to edit users on a WSS site&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Double-click on a node in the treeview will open the site in a new browser&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Some error handling gone in&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Should display some information on user alerts&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Render out all site roles, including custom ones&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Got some icons in the treeview to refelct what the site type is&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Stuff that hasn't yet made it:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;SPS Object Model.&amp;nbsp; Still working on giving the ability to perform user management on SPS Areas. (Version X1.2)&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;Cross site groups are not yet showing up.&amp;nbsp; Not absolutely sure why yet as I have dropped the code in but it never seems to be able to find them!&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Stuff that is odd:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="Verdana" size="2"&gt;If you delete a user from a site and then re-add that user, with different details such as user name, notes, etc, then the previous information is restored.&amp;nbsp; Do not know why yet so the process to add a "new" user who has been on the site before is to add them account and give them a role and then select and edit them.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;If you find any bugs with user management in WSS, then please leave information on how to reproduce as feedback to this post please!&amp;nbsp; Also, any suggestions on how you would like to see the interface changed to make it more intuitive.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://nigelbridport.members.winisp.net/Development/SharePointUserManager/SPUM2003X11.zip"&gt;&lt;font face="Verdana" color="#800080" size="2"&gt;&lt;strong&gt;Download version X1.1&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=317419" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>SharePoint Branding</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/12/09/278796.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/12/09/278796.aspx</id><published>2004-12-09T16:23:00Z</published><updated>2004-12-09T16:23:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;A href="http://weblogs.asp.net/danielmcpherson"&gt;Dan&lt;/a&gt; has just managed to get a couple of&amp;nbsp;new articles published on MSDN that are&amp;nbsp;concerned with branding SharePoint Sites.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;This is a must read for anyone who is serious about customising the look'n'feel of SharePoint.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;a title="http" href="http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_SP2003_ta/html/Office_SharePointApplyingCorporateBrand.asp"&gt;&lt;font face="Verdana"&gt;http://msdn.microsoft.com/office/default.aspx?pull=/library/en-us/odc_SP2003_ta/html/Office_SharePointApplyingCorporateBrand.asp&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span lang="EN" style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Verdana" color="#000000"&gt;Please go and check it out.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=278796" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>SPUM2003 (was "SharePoint User Manager")</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/12/02/273744.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/12/02/273744.aspx</id><published>2004-12-02T23:49:00Z</published><updated>2004-12-02T23:49:00Z</updated><content type="html">&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Just an update on this tool for people interested and also because I am off to &lt;em&gt;New York&lt;/em&gt; for a few days :-)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;I got&amp;nbsp;laughed&amp;nbsp;at&amp;nbsp;by a &lt;A href="http://blogs.msdn.com/danielmcpherson/archive/2004/11/30/272550.aspx"&gt;good friend of mine&lt;/a&gt;&amp;nbsp;due to its boring name so I had a think and now call the tool &lt;strong&gt;&lt;font color="#800080"&gt;SPUM2003&lt;/font&gt;&amp;nbsp; &lt;/strong&gt;Along the lines of SPIN/SPOUT for SharePoint.&amp;nbsp; Well, that is my rationale for choosing the name.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;I have done some more work and now the code operates on WSS site security by Adding, Deleting and Editing users and then displays their&amp;nbsp;details, Alerts, Groups, Cross-Site groups.&amp;nbsp;&amp;nbsp;I have started to make the UI look a bit better and also in the process of enabling Site Group editing/management.&amp;nbsp; Haven't got the SPS Area security bit working but it will shortly.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=273744" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>SharePoint User Manager (Version: X1.0)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/11/30/272173.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/11/30/272173.aspx</id><published>2004-11-30T18:01:00Z</published><updated>2004-11-30T18:01:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt;Not sure about other people, but I find it quite time consuming when trying to manage users inside of Windows SharePoint Services sites, especially when the sites in the hierarchy have their security inheritance broken.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A number of customers end up breaking security inheritance at every opportunity and then hit this problem.&lt;/font&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;So, I am in the process of writing a &lt;span style="FONT-WEIGHT: bold; COLOR: teal"&gt;SharePoint User Manager&lt;/span&gt; Windows Application in order to help out in this area!&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Below is a screenshot of the utility to-date (Note: This is version X1.0 and as such has restricted functionality)&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="450" src="http://nigelbridport.members.winisp.net/images/Post4image001.gif" width="618" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Note: The SharePoint Object model is not "remotable" so it has to be run on the SharePoint server itself.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;In the Server textbox, you can control which portal is opened. i.e. If you leave the default, it will attempt to scan the default port (typically 80) and render out the sites from there.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If you had a portal on a different port that you want to examine, just enter "&lt;span style="COLOR: teal"&gt;&amp;lt;server name&amp;gt;:&amp;lt;port&amp;gt;&lt;/span&gt;".&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If I had a portal on port 100 on my development machine, I would enter "SPSNIGELBRI:100".&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Then select the "Go" button.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Do &lt;span style="FONT-WEIGHT: bold"&gt;not &lt;/span&gt;prefix with "&lt;a href="http:///"&gt;HTTP://&lt;/a&gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This should render out something like:&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="449" src="http://nigelbridport.members.winisp.net/images/Post4image002.gif" width="616" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;So, you can see all of the site collections on your portal.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Now, just drill through them and you should see what users have what roles on each of the sites and also receive an indication if security for the selected site is inherited from the parent or not.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="450" src="http://nigelbridport.members.winisp.net/images/Post4image003.gif" width="617" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This utility is just really an exercise into the SPUser object and displaying what information is available for each user.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt; &lt;hr id="null" /&gt; &lt;p&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Please leave me any comments on the utility to date in terms of functionality that you think would be useful to see!&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Currently, for the next version, the following is intended to be working:&lt;/p&gt; &lt;ul style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 1in; DIRECTION: ltr; unicode-bidi: embed" type="circle"&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;Edit selected user (able to change the name, email, site collection administrator, notes and roles)&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;Add a new user to the selected site&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;Delete a user from the selected site&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;Manage the site groups and gross site groups&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;View and manage the selected users configured Alerts&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;Double click the site will open the site in IE&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Verdana"&gt;Plus making the interface a bit nicer looking&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;font color="#800080"&gt;Click &lt;/font&gt;&lt;a href="http://nigelbridport.members.winisp.net/Development/SharePointUserManager/SharePointUserManagerX10.zip"&gt;&lt;font color="#800080"&gt;&lt;strong&gt;HERE&lt;/strong&gt; &lt;/font&gt;&lt;/a&gt;&lt;font color="#800080"&gt;to download the X1.0 Version&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;or&lt;/font&gt; &lt;/font&gt;&lt;a href="http://nigelbridport.members.winisp.net/Development/SharePointUserManager/SPUM2003X11.zip"&gt;&lt;font face="Verdana" color="#800080" size="2"&gt;&lt;strong&gt;Download version X1.1&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Please check back soon for an updated version!&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=272173" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>Writing Windows SharePoint Services Server-Side controls</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/11/18/265762.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/11/18/265762.aspx</id><published>2004-11-19T01:33:00Z</published><updated>2004-11-19T01:33:00Z</updated><content type="html">&lt;strong&gt;&lt;/strong&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Overview&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;This post tries to describe the process of writing a .NET server-side control for Microsoft Windows SharePoint Services&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;There are a number of ways to write add-in code for SharePoint Technologies, the most notable being web parts.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;However, these do not always help in the customisation of a site.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Sometimes, we need to be able to change the &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;SharePoint look'n'feel and web parts do not integrate seamlessly in an area we want to control..&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If we consider that &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;SharePoint is an ASP.NET application, we are able to use other .NET techniques to deliver the look and customisation&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;we want.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;One of those methods is via compiled controls.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Most commonly used would be user controls but we can also write &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;server controls&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Mini-Navigator&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;In this post, I will be describing how I wrote a server control that I call a Mini-Navigator.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;See below:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="648" src="http://nigelbridport.members.winisp.net/images/post3image001.gif" width="624" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;This is a server control written in VB.NET.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It initially outputs the logged on user information, this is because when I am sometimes testing, &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;it is really easy for me to forget with IE session is representing which user.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Then, it should give you the current site, the parent site to you &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;and the children site beneath you.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So, it renders out 1 level above and 1 level below and displays the appropriate icon for the site.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Hovering on the site will display the sites' Title/Description information and clicking on the site will navigate the current window to it.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;If you wanted to open the site in a new window, remember to hold the &amp;lt;Shift&amp;gt; key when clicking on the site.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;In the above example, if I clicked on the site "&lt;span style="FONT-STYLE: italic"&gt;bridport&lt;/span&gt;", you would get:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="645" src="http://nigelbridport.members.winisp.net/images/post3image002.gif" width="623" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;So that’s what the control looks like, so how can we put this into a SharePoint site?&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Step 1 - Building the control&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;This is just using one of the default templates that comes with Visual Studio .NET 2003.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The control that I will be building here&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;will be going into the Global Assembly Cache (GAC) on my SharePoint server so I need to strongly name it.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;So, open Visual Studio .NET 2003, then "File/New/Project".&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In your language of choice, you should see a template called&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;"Windows Control Library".&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;This is the template I will be using.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;The control uses the WSS Object Model (OM), se we need to add a reference to "Windows SharePoint Services"&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="384" src="http://nigelbridport.members.winisp.net/images/post3image003.gif" width="495" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Note: This assumes you are developing on a machine that has WSS installed already.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;not, you will need to obtain the appropriate DLLs and add them.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;You will need to set up your own appropriate namespace.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;My code looks like:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;MiniNavigatorSC.VB&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports System.ComponentModel&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports System.Web.UI&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports Microsoft.SharePoint&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports Microsoft.SharePoint.Utilities&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports Microsoft.SharePoint.WebControls&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;DefaultProperty("Text"), ToolboxData("&amp;lt;{0}:MiniNavigator runat=server&amp;gt;&amp;lt;/{0}:MiniNavigator&amp;gt;")&amp;gt; Public Class MiniNavigator&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Inherits System.Web.UI.WebControls.WebControl&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Dim _text As String&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;Bindable(True), Category("Appearance"), DefaultValue("")&amp;gt; Property [Text]() As String&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Get&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return _text&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End Get&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set(ByVal Value As String)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_text = Value&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End Set&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;End Property&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dim oSite As SPWeb = SPControl.GetContextWeb(Context)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dim oSubWebs As SPWebCollection = oSite.Webs&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dim oSubWeb As SPWeb&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dim sOutput As String = ""&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dim sImg As String = ""&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'Output the CurrentUser so that the user is aware of who they are logged in as.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput = "&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2 class='ms-tabselected' title='Logged in as:'&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput += oSite.CurrentUser.LoginName.ToString + "&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'If at a site collection, the ParentWeb object will be nothing&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;If (oSite.IsRootWeb) Then&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'Site Collection level.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The parent maybe a portal&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput += "&amp;lt;tr&amp;gt;&amp;lt;td valign='top'&amp;gt;&amp;lt;img src='/_layouts/images/opx16.gif' alt=''&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=90% class='ms-nav a' title='This is a SharePoint Portal site'" +&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;oSite.PortalName + "&amp;gt;&amp;lt;a href='" + oSite.PortalUrl.ToString + "'&amp;gt;" + oSite.PortalName.ToString + "&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Else&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Dim sSiteName As String = ""&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;If (oSite.ParentWeb.Name.ToString.Length &amp;lt;&amp;gt; 0) Then&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sSiteName = oSite.ParentWeb.Name.ToString&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Else&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sSiteName = Right(oSite.ParentWeb.Url.ToString, oSite.ParentWeb.Url.ToString.Length - oSite.ParentWeb.Url.ToString.LastIndexOf("/") - 1)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End If&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput += "&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src='/_layouts/images/" + getGif(oSite.WebTemplate.ToString, oSite.Configuration) + ".gif' alt=''&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=90% class='ms-nav a' title='Site Title: " + oSite.ParentWeb.Title.ToString + " / " + oSite.ParentWeb.Description.ToString + "'&amp;gt;&amp;lt;a href='" + oSite.ParentWeb.Url.ToString + "'&amp;gt;" + SPEncode.HtmlDecode(sSiteName) + "&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End If&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'The current site&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput += "&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src='/_layouts/images/" + getGif(oSite.WebTemplate.ToString, oSite.Configuration) + ".gif' alt=''&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td class='ms-selectednav' width=90% title='You are here'&amp;gt;" + oSite.Title.ToString + "&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'The child sites&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;For Each oSubWeb In oSubWebs&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput += "&amp;lt;tr&amp;gt;&amp;lt;td valign='top'&amp;gt;&amp;lt;img src='/_layouts/images/" + getGif(oSubWeb.WebTemplate.ToString, oSubWeb.Configuration) + ".gif' alt=''&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=90% class='ms-nav a' title='Site Title: " + oSubWeb.Title.ToString + " / " + oSubWeb.Description.ToString + "'&amp;gt;&amp;lt;a href='" + oSubWeb.Url.ToString + "'&amp;gt;" + oSubWeb.Name.ToString + "&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Next oSubWeb&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sOutput += "&amp;lt;/table&amp;gt;"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;output.Write(sOutput)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End Sub&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Private Function getGif(ByVal sType As String, ByVal iConfig As Integer)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Select Case sType&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Case "MPS"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return "MTGICON"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Case Else&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Select Case iConfig&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Case 0&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'Team Site&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return "STSICON"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Case 1&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'Blank Site&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return "MSCNTVWL"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Case 2&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'Document Workspace&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return "DOCICON"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Case Else&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'Set as a team site&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return "STSICON"&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End Select&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;End Select&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End Function&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;End Class&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;AssemblyInfo.VB&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports System&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports System.Reflection&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;Imports System.Runtime.InteropServices&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' General Information about an assembly is controlled through the following &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' set of attributes. Change these attribute values to modify the information&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' associated with an assembly.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' Review the values of the assembly attributes&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyTitle("Mini-Navigator")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyDescription("This is a server control that can be added to a SharePoint site to display the parent and children site information")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyCompany("Bridport")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyProduct("")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyCopyright("")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyTrademark("")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: CLSCompliant(True)&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'The following GUID is for the ID of the typelib if this project is exposed to COM&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: Guid("ED83C45C-4EBC-4a51-89AE-E95EB38C4AB1")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' Version information for an assembly consists of the following four values:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;Major Version&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;Minor Version &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;Build Number&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;Revision&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;'&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' You can specify all the values or you can default the Build and Revision Numbers &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;' by using the '*' as shown below:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyVersion("1.0.0.0")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;Assembly: AssemblyKeyFile("../../MiniNav.snk")&amp;gt; &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&lt;font color="#800080"&gt;Click &lt;/font&gt;&lt;a href="http://nigelbridport.members.winisp.net/Development/MiniNavigator.zip"&gt;&lt;strong&gt;&lt;font color="#800080"&gt;here&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;font color="#800080"&gt; to download the project.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; The project contains the files previously mentioned plus the MiniNavigatorSCCS.cs which is the C# equivalent code for all you C#'ers out there!&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font color="#006400"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Note: you will have to add your own KeyFile using SN -K called MiniNav.SNK and located in the &lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;project directory at the same level as the .VB files&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Now we have the control built and it is ready to deploy to the SharePoint Server&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;So, what does the code do? &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Nothing hard or tricky really, just gets the site context from:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;Dim oSite As SPWeb = SPControl.GetContextWeb(Context)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Then this context is used to get the Current User information from the WSS OM property &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 2"&gt;oSite.CurrentUser.LoginName.ToString&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;We then just work through the object model to get the parent and children site information.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;To get the correct icons for the workspace, we use:&lt;/p&gt; &lt;p lang="EN" style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Console'"&gt;oSubWeb.&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Segoe"&gt;WebTemplate &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Segoe"&gt;and&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Lucida Console'"&gt;oSubWeb.Configuration&lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;I do make an assumption here that you are using the default site definitions.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If you have modified these,&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;you may need to change this piece of code&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Step 2 - Deploy the control&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;As I may want to use the control on any site on my SharePoint server, over a number of portals,&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;I copy the built DLL, &lt;span style="FONT-STYLE: italic"&gt;MiniNavigator.DLL&lt;/span&gt;, to the server GAC.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;The control sits on a WSS default page, so we have to edit the sites' &lt;span style="FONT-STYLE: italic"&gt;default.ASPX&lt;/span&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;There are a number of &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;ways to update this file using many editors such as FrontPage2003 but…&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I normally edit the page by&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;first mapping a web folder to the site&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="239" src="http://nigelbridport.members.winisp.net/images/post3image004.gif" width="576" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;(REALLY IMPORTANT NOTE: Make sure you keep a copy of the original DEFAULT.ASPX file before &lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;you edit it just in case!!!!)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;I would then drag'n'drop the &lt;span style="FONT-STYLE: italic"&gt;default.aspx&lt;/span&gt; file to my desktop and open it using &lt;span style="FONT-STYLE: italic"&gt;NotePad &lt;/span&gt;and add the control&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;reference thus:&lt;/p&gt; &lt;p style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;img height="143" src="http://nigelbridport.members.winisp.net/images/post3image005.gif" width="710" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;The line we are interested in is:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;….&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;%@ Register Tagprefix="NMB" Namespace="MiniNavigator" Assembly="MiniNavigator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7dd16f83bffd70b1" %&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;….&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;With the reference in, we now need to place the control at the appropriate location within the ASPX file.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;As, this&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;control is to be displayed on the navigation area of the site, I put it as shown below:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="MARGIN: 0in 0in 0in 0.5in; mso-outline-level: 2"&gt;&lt;img height="257" src="http://nigelbridport.members.winisp.net/images/post3image006.gif" width="576" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Again, the lines I added are:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;…&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;TR&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;TD style="padding-left:0px;padding-right:0px"&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;img width=1px src='/_layouts/images/blank.gif' ID='100' alt='Icon' border=0&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;NMB:MiniNavServerControl id="NigelSC1" runat="server" /&amp;gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/TD&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;/TR&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;…&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;NOTE: You may find it easier to use FrontPage2003 to actually do this manipulation as it is easier to locate&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;the actual HTML where you want to drop the control&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Now, save the file and drag it back to the WSS web folder where you originally dragged the file from, overwriting the&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;original file.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;(This will create a custom version of the file and it is handled slightly differently by SharePoint from &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;default sites without customisation.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;These files are more commonly called "one-off" or "unghosted")&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;The final part of the deployment is to update the appropriate &lt;span style="FONT-STYLE: italic"&gt;web.config&lt;/span&gt; file to allow the control to &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;render.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So, open the &lt;span style="FONT-STYLE: italic"&gt;web.config&lt;/span&gt; and add the reference for the control into the &lt;span style="FONT-STYLE: italic"&gt;&amp;lt;SafeControls&amp;gt;&lt;/span&gt; section:&lt;/p&gt; &lt;p style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;img height="294" src="http://nigelbridport.members.winisp.net/images/post3image007.gif" width="756" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;The line is&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;…&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&amp;lt;SafeControl Assembly="MiniNavigator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7dd16f83bffd70b1" &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 8pt; MARGIN: 0in; FONT-FAMILY: 'Lucida Console'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Namespace="MiniNavigator" TypeName="*" Safe="True" /&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;…&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Segoe; mso-outline-level: 1"&gt;Now do an IISRESET and view the site!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=265762" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>Changing Microsoft Office SharePoint Portal Server 2003 Search Results</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/10/27/248439.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/10/27/248439.aspx</id><published>2004-10-27T19:47:00Z</published><updated>2004-10-27T19:47:00Z</updated><content type="html">&lt;font face="Arial" size="5"&gt;&lt;strong&gt;&lt;em&gt;Overview&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This article intends how to use the override functionality to deliver up your own rendered search results.&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Typical Problem&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;I see lots of people asking questions on how to customise the Microsoft Office SharePoint Portal Server 2003 search results page with the typical question being “&lt;span style="FONT-STYLE: italic"&gt;How can I edit the Search.ASPX file?&lt;/span&gt;”&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;When trying to modify the Search Results rendered by SPS2003 there are some concepts and information that you should be aware of:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;ul style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 1in; DIRECTION: ltr; unicode-bidi: embed" type="disc"&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-FAMILY: Arial"&gt;The Search Results page is actually made up of 2 web parts out of the box on a provisioned portal. &lt;/span&gt; &lt;ul style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 0.5in; DIRECTION: ltr; unicode-bidi: embed" type="disc"&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 3"&gt;&lt;span style="FONT-FAMILY: Arial"&gt;The first web part is the &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;Search Constructor&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; and is responsible for building the required query string for the user in order to be able to execute the query against the SPS index. &lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 3"&gt;&lt;span style="FONT-FAMILY: Arial"&gt;The second web part is called the &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;Search Results&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; web part and this is where the returned results from the index are rendered and displayed to the user. This web part also controls what grouping is available on the navigation bar.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;To be able to view or manipulate these web parts, you need to enter the following command into your browser of choice (replacing &amp;lt;SPSserver&amp;gt; with your SPS server name and you must have the necessary permissions at the portal level)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;a href="http://%3cspsserver%3e/search.aspx?mode=edit&amp;amp;PageView=Shared"&gt;http://&amp;lt;SPSserver&amp;gt;/search.aspx?mode=edit&amp;amp;PageView=Shared&lt;/a&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This will expose the &lt;span style="COLOR: blue"&gt;Modify Shared Page&lt;/span&gt; link at the top right of the page&lt;/p&gt; &lt;p style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;img src="http://nigelbridport.members.winisp.net/images/post2pic1.gif" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Now by selecting “&lt;span style="FONT-STYLE: italic"&gt;Design this page&lt;/span&gt;”, you will see the 2 default web parts that are deployed at portal provisioning time.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Displaying your own Search Results&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;To be able to change the way the search results are rendered to the user, you have to override the default Search Results web part.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Some sketchy information can be found at: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/cSearchResults.asp"&gt;&lt;span style="COLOR: blue"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/cSearchResults.asp&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This shows you the &lt;span style="FONT-STYLE: italic"&gt;SearchClass&lt;/span&gt; that you can you programmatically override. &lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 13pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Sample&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This sample is quite non-invasive into the Search Results. It just adds a new button as you can see below:&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;img height="384" src="http://nigelbridport.members.winisp.net/images/post2pic2.gif" width="494" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;By selecting “&lt;span style="FONT-STYLE: italic"&gt;Item parent&lt;/span&gt;” at 1, will display the parents’ site listing: (This is the only site collection in this instance of a portal)&lt;/p&gt; &lt;p style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;img height="454" src="http://nigelbridport.members.winisp.net/images/post2pic3.gif" width="758" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;By selecting “&lt;span style="FONT-STYLE: italic"&gt;Item parent&lt;/span&gt;” at 2, will display the document library that the documents live in;&lt;/p&gt; &lt;p style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;img height="516" src="http://nigelbridport.members.winisp.net/images/post2pic4.gif" width="770" /&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Show me the code&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;On lots of sites, I can normally find descriptive information on what I need to do but I always think that the best way to demonstrate a concept or approach is through the use of some sample code that you can take and modify for yourself.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Below is some code I wrote in C# that shows how to override the default search results and add a new button at the &lt;span style="FONT-STYLE: italic"&gt;Actions&lt;/span&gt; level for a search result hit. The button enables the user to go to the parent level for particular items such as Documents (will go to the Documents Document Library), List Items (will go to the List Items List) and Sites (will go to the Sites parent Site)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System.ComponentModel;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System.Web.UI;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System.Web.UI.WebControls;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System.Xml.Serialization;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using Microsoft.SharePoint;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using Microsoft.SharePoint.Utilities;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using Microsoft.SharePoint.WebPartPages;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System.Data;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;using System.Text;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;namespace SearchResultExtension&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// &amp;lt;summary&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// This webpart has been developed to enable users to be able to navigate&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// easier to a particular items parent container.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// Items that are supported by this functionality are:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// . Documents within SharePoint&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// . Lists within SharePoint&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// . SharePoint Sites&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// . Files trawled from NTFS (&lt;a href="file:///"&gt;file://&lt;/a&gt; prefix'd)&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;// &amp;lt;/summary&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;[DefaultProperty("Text"), &lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ToolboxData("&amp;lt;{0}:Override runat=server&amp;gt;&amp;lt;/{0}:Override&amp;gt;"),&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;XmlRoot(Namespace="SearchResultExtension")]&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;public class Override : Microsoft.SharePoint.Portal.WebControls.SearchResults&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;{ &lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// Use the following constants to manage what pages are rendered for which result type&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;const string c_DSP_SiteCollection = "/SiteDirectory/Lists/Sites/AllItems.aspx";&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;const string c_DSP_SubWeb = "/_layouts/1033/mngsubwebs.aspx?view=sites";&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;const string c_DSP_Lists = "/_layouts/1033/viewlsts.aspx";&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// The following constant defines the default button name&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;const string c_ButtonDefault = "Item parent";&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private string _button;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public Override()&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_button = c_ButtonDefault; //Initialise private variables&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[Category("Custom Properties")] //Create a custom category on the property sheet.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[DefaultValue(c_ButtonDefault)] // Assign the default value.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[WebPartStorage(Storage.Personal)] // Property is available in both Personalisation and Customisation mode.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[FriendlyNameAttribute("Items' parent button display name.")] // The caption that appears in the property sheet&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[Description("Type the parent button name.")] // The tool tip that appears when pausing the mouse pointer&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[Browsable(true)] // Display the property in the property pane.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[XmlElement(ElementName="Button")] // The accessor for this property.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public string Button&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;get&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return _button;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;set&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_button = value;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//********************************************************************************&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Description:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// This webpart is built to override the standard default out of the box Search &lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// Results webpart functionality. The part adds a new option on the search &lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// results page to be able to navigate to specific items parent folder.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Author:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Date:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// ??th October 2004&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Version:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// V1.0.0.0&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//Modifications:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// Who When Why&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;// NB **/**/** Initial webpart creation.&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//********************************************************************************&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;protected override void GenerateHtmlOneRowForOneItem(&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;System.Data.DataRow oneDataRow,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;System.Text.StringBuilder sbRenderRowHtml,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int rowID,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string strStyleClass,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int iIndexOfItemInDataSet,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int iIndexOfItemInGroup&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;)&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;base.GenerateHtmlOneRowForOneItem(oneDataRow,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sbRenderRowHtml,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rowID,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;strStyleClass,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;iIndexOfItemInDataSet,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;iIndexOfItemInGroup);&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (rowID == 3) //This is the row where the actions are!&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sHref = GetRowValue(oneDataRow, "DAV:href"); //Get the URL for the item&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sFCC = GetRowValue(oneDataRow, "DAV:contentclass"); //See what sort of item it is&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (sFCC.StartsWith("STS_")) //It is a SharePoint internal item&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref.Substring(0, sHref.LastIndexOf("/")); //Format the URL to remove the filename&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;switch (sFCC) //We need to do different things to different items to render the parent&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_Site": //Site Collection&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref.Substring(0, sHref.LastIndexOf("/")) + c_DSP_SiteCollection;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;break;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_ListItem_300": //Site collection but to be treated differently&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref.Substring(0, sHref.LastIndexOf("/")) + c_DSP_SiteCollection;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;break;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_Web": //WSS Subweb&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref + c_DSP_SubWeb;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;break;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_ListItem_DocumentLibrary": //List item within a Document Library&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;break;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_List_DocumentLibrary": //WSS Document Library&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sListDisp = GetRowValue(oneDataRow, "DAV:displayname"); //Get the displayname&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref.Substring(0, sHref.LastIndexOf("/" + sListDisp + "/")) + c_DSP_Lists;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;break;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_List_Announcements": //WSS List&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref.Substring(0, sHref.LastIndexOf("/Lists/")) + c_DSP_Lists; //Need to cut off /Lists also&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;break;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;case "STS_Document": //A SharePoint specific file. Do not touch&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;default: //Anything else, ignore&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (sHref.Length &amp;gt; 7) //Bigger than "&lt;a href="https:///"&gt;https://&lt;/a&gt;" i.e. Make sure we have something to replace with&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sSrcResPage = sbRenderRowHtml.ToString(); //HTML generated so far&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sAnchor = " | &amp;lt;A href=\"" + SPEncode.UrlEncodeAsUrl(sHref) + "\"&amp;gt;" + this._button + "&amp;lt;/A&amp;gt;"; //Create new string&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int iInsert = sSrcResPage.LastIndexOf("&amp;lt;/A&amp;gt;"); //Last occurrence of the string&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (iInsert &amp;gt; 0) //if we've found the search string at all...&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//insert the new button into the HTML at the right place&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sbRenderRowHtml.Replace(sSrcResPage, sSrcResPage.Insert(iInsert + 4, sAnchor));&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else if (sHref.StartsWith("file://")) //on an external file&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sHref = sHref.Substring(0, sHref.LastIndexOf("/")); //Format the URL to remove the filename&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sSrcResPage = sbRenderRowHtml.ToString(); //HTML generated so far&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;string sAnchor = " | &amp;lt;A href=\"" + SPEncode.UrlEncodeAsUrl(sHref) + "\"&amp;gt;" + this._button + "&amp;lt;/A&amp;gt;"; //Create new string&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int iInsert = sSrcResPage.LastIndexOf("&amp;lt;/A&amp;gt;"); //Last occurrence of the string&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (iInsert &amp;gt; 0) //if we've found the search string at all...&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//insert the new button into the HTML at the right place&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sbRenderRowHtml.Replace(sSrcResPage, sSrcResPage.Insert(iInsert + 4, sAnchor));&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;private string GetRowValue(DataRow dbRow, string strUri)&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataColumnCollection rowColums = dbRow.Table.Columns;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (rowColums.Contains(strUri)) return dbRow[strUri].ToString();&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else return "";&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;How the code works&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;The class is set to &lt;span style="FONT-STYLE: italic"&gt;Override&lt;/span&gt; and class inherits from&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: blue; mso-outline-level: 1"&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;Microsoft.SharePoint.Portal.WebControls.SearchResults&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Beneath the class definition, a number of constants are exposed. These constants can be used to direct what pages are displayed for particular items. For example, a WSS List can be returned in the search results and the parent container for this item is really just the site where it resides. However, SharePoint has a number of pages that render just the lists of the sites that presents a much more intuitive container.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;const string c_DSP_SiteCollection = "/SiteDirectory/Lists/Sites/AllItems.aspx";&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This is used when a site collection item is returned by the search. It directs the browser to the portals &lt;span style="FONT-STYLE: italic"&gt;SiteDirectory&lt;/span&gt; listing view&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;const string c_DSP_SubWeb = "/_layouts/1033/mngsubwebs.aspx?view=sites";&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This is used when a sub web is returned in the search results. Note that this site is not at the site collection level. The view that is used is for the parent site of the subweb and the subweb collection for the parent site is displayed.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;const string c_DSP_Lists = "/_layouts/1033/viewlsts.aspx";&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This is used when a list is found in the search results and points the browser to the list view for the parent site.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; mso-outline-level: 1"&gt;&lt;span style="FONT-FAMILY: Arial"&gt;Then, the code looks to set up the custom property for the button name. The default string is maintained by the logical const string &lt;/span&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;c_ButtonDefault&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt; &lt;/span&gt;&lt;span style="COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;= "Items parent";&lt;/span&gt;&lt;span style="FONT-FAMILY: 'Courier New'"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;The custom button property is then set up by the following code snippet. This section controls the page where the control is displayed (&lt;span style="FONT-STYLE: italic"&gt;Category&lt;/span&gt; property) and the button description, &lt;span style="FONT-STYLE: italic"&gt;FriendlyNameAttribute&lt;/span&gt;:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;private string _button;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;public Override()&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;_button = c_ButtonDefault;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[Category("Custom Properties")]&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[DefaultValue(c_ButtonDefault)]&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[WebPartStorage(Storage.Personal)]&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[FriendlyNameAttribute("Items' parent button display name.")]&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[Description("Type the parent button name.")]&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[Browsable(true)]&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;[XmlElement(ElementName="Button")]&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;public string Button&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;get&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return _button;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;set&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;{&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_button = value;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;}&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;The code then defines the override function that is the main driver of the web part:&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;protected override void GenerateHtmlOneRowForOneItem(&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;System.Data.DataRow oneDataRow,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;System.Text.StringBuilder sbRenderRowHtml,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;int rowID,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;string strStyleClass,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;int iIndexOfItemInDataSet,&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;int iIndexOfItemInGroup&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;This is the routine that is called by default by the SharePoint process on a result list of search items so that they can be rendered by the &lt;span style="FONT-STYLE: italic"&gt;Search Results&lt;/span&gt; web part. The data row, &lt;span style="FONT-STYLE: italic"&gt;oneDataRow &lt;/span&gt;contains the data that needs to be formatted.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;The search page is built up from the hits that are returned, to a maximum of 40 items per page by default, and this data is organised by &lt;span style="FONT-STYLE: italic"&gt;oneDataRow&lt;/span&gt;. For each of the hits, the &lt;span style="FONT-STYLE: italic"&gt;GenerateHtmlOneRowForOneItem&lt;/span&gt; is called. When this is called, the string builder, &lt;span style="FONT-STYLE: italic"&gt;sbRenderRowHtml&lt;/span&gt;, is appended to with the current row information from &lt;span style="FONT-STYLE: italic"&gt;oneDataRow&lt;/span&gt;. So, we allow the base call to execute that would add the standard buttons such as &lt;span style="COLOR: navy; FONT-STYLE: italic"&gt;Add to My Links | Alert Me | Item details&lt;/span&gt;&lt;span style="COLOR: navy"&gt;.&lt;/span&gt; We then perform some tests to see if we are working on a known object type and should therefore be adding the &lt;span style="FONT-STYLE: italic"&gt;Item Parent&lt;/span&gt; button.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;The first test is just to see if we are actually on the correct row for the buttons. This is known as row 3 and contained within the integer &lt;span style="FONT-STYLE: italic"&gt;rowID&lt;/span&gt;. If the row is anything but 3, we exit from the code and allow SharePoint to continue as normal.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;If the &lt;span style="FONT-STYLE: italic"&gt;rowID&lt;/span&gt; is 3, then we pull the items’ &lt;span style="FONT-STYLE: italic"&gt;HRef&lt;/span&gt; property from &lt;span style="FONT-STYLE: italic"&gt;oneDataRow&lt;/span&gt;. The &lt;span style="FONT-STYLE: italic"&gt;HRef&lt;/span&gt; property is passed in and contains the full URL to the item that is currently being rendered. We must remember that all items known to SharePoint are URL addressable.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;We extract the property from the data row by passing it, along with the property we are looking for, &lt;span style="FONT-STYLE: italic"&gt;DAV:href&lt;/span&gt;, to another routine called &lt;span style="FONT-STYLE: italic"&gt;GetRowValue&lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;The routine passes back the property asked for, &lt;span style="FONT-STYLE: italic"&gt;DAV:href&lt;/span&gt;, and it is assigned to the string &lt;span style="FONT-STYLE: italic"&gt;sHref&lt;/span&gt;.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;We also then use GetRowValue but request the value for DAV:contentclass. The contentclass of the object tell us whether or not we should be handling the item at all as we only want to act on known object types.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;To see if we may need to add the button, we perform a test on the first 4 characters of the content class. If the item begins with &lt;span style="FONT-STYLE: italic"&gt;STS_&lt;/span&gt; then it is a SharePoint object and we may need to update with our new button. If the &lt;span style="FONT-STYLE: italic"&gt;contentclass&lt;/span&gt; does not begin with &lt;span style="FONT-STYLE: italic"&gt;STS_&lt;/span&gt; then we may still need to add our button as long as the &lt;span style="FONT-STYLE: italic"&gt;sHref&lt;/span&gt; string begins with &lt;a href="file:///"&gt;&lt;span style="FONT-STYLE: italic"&gt;file://&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-STYLE: italic"&gt;.&lt;/span&gt; If neither of these conditions is met, then the routine is exited and normal SharePoint functionality continues.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Next we truncate &lt;span style="FONT-STYLE: italic"&gt;sHref&lt;/span&gt; from the last “\”. This is in effect dropping the filename or object name from the string so that we have a more representative URL for the parent object.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Now we perform a switch test on the &lt;span style="FONT-STYLE: italic"&gt;contentclass&lt;/span&gt; and we are looking for:&lt;/p&gt; &lt;ul style="MARGIN-TOP: 0in; MARGIN-BOTTOM: 0in; MARGIN-LEFT: 1in; DIRECTION: ltr; unicode-bidi: embed" type="disc"&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_Site:&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; and &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_ListItem_300:&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; Both of these content classes relate to a site collection level site and will be prefixed by &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;/sites&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; by default. We need to remove this part of the URL to get to the portal URL and so we again truncate from the last “/”. We strip off the &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;/sites &lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt;term and then append the string held by &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;c_DSP_SiteCollection&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt;. Note that &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;/sites&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; is the default string but this can be some other configured string.&lt;/span&gt; &lt;li lang="EN" style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_Web:&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; This is a normal WSS subweb. As we already have the parent URL in &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;sHref&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt;, we just need to append to constant &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;c_DSP_SubWeb&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; to modify the URL to point to the site list for the parent.&lt;/span&gt; &lt;li style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_ListItem_DocumentLibrary:&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; No requirement to modify the URL here as it is full and already correctly formatted in &lt;/span&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;sHref&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt;.&lt;/span&gt; &lt;li style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span lang="EN" style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_List_DocumentLibrary:&lt;/span&gt;&lt;span lang="EN" style="FONT-FAMILY: Arial"&gt; This is a WSS Document Library listing and we need to perform more tests to ensure that we get the correct URL set.&lt;/span&gt;&lt;span lang="EN" style="FONT-FAMILY: Arial"&gt; A call is made to &lt;/span&gt;&lt;span lang="EN" style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;GetRowValue&lt;/span&gt;&lt;span lang="EN" style="FONT-FAMILY: Arial"&gt; and we ask for the &lt;/span&gt;&lt;span lang="EN" style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;DAV:displayname&lt;/span&gt;&lt;span lang="EN" style="FONT-FAMILY: Arial"&gt; of the list. This display name will be contained within the URL. We then format the &lt;/span&gt;&lt;span lang="EN" style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;sHref&lt;/span&gt;&lt;span lang="EN" style="FONT-FAMILY: Arial"&gt;, truncating from the appearance of the display name and append &lt;/span&gt;&lt;span lang="EN" style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;c_DSP_Lists&lt;/span&gt; &lt;li style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_List_Announcements&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt;: This is the same operation as above but this needs to work on a different list type and is always noted by /Lists&lt;/span&gt; &lt;li style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; mso-outline-level: 2"&gt;&lt;span style="FONT-STYLE: italic; FONT-FAMILY: Arial"&gt;STS_Document:&lt;/span&gt;&lt;span style="FONT-FAMILY: Arial"&gt; This is a SharePoint internal file that is used to display the portal and it is not sensible or appropriate to do anything with it, so we would return out of the routine on this condition.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Then, a check if made on the length of the formatted URL in &lt;span style="FONT-STYLE: italic"&gt;sHref&lt;/span&gt; just to ensure that it contains a valid address.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;At this stage, we have a formatted string that we want to insert into the string builder that will be used for rendering the results to the user. This string is stored in &lt;span style="FONT-STYLE: italic"&gt;sbRenderRowHtml&lt;/span&gt;. To be able to perform string manipulations on it, we coerce the string builder type into a string called &lt;span style="FONT-STYLE: italic"&gt;sSrcResPage&lt;/span&gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Another string is created called &lt;span style="FONT-STYLE: italic"&gt;sAnchor&lt;/span&gt;, and this will contain the formatted HTML codes for our new button. The string is built up using normal HTML code and the &lt;span style="FONT-STYLE: italic"&gt;sHref&lt;/span&gt; that has been built up as the target of the anchor tag. &lt;span style="FONT-STYLE: italic"&gt;UrlEncodeAsUrl&lt;/span&gt; is a standard routine available in the SharePoint OM to replace particular characters with their printable form. &lt;span style="FONT-STYLE: italic"&gt;this._button&lt;/span&gt; uses the button name that we have configured for it.&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;A search is then performed on the string version of the page being built stored in &lt;span style="FONT-STYLE: italic"&gt;sSrcResPage&lt;/span&gt; for the particular &amp;lt;/A&amp;gt; string which denotes the end of the last button. This will return to us the last position in the string for the current item, of the last button. We can then add our newly formatted button stored in &lt;span style="FONT-STYLE: italic"&gt;sAnchor&lt;/span&gt; after it.&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; MARGIN: 0in; FONT-STYLE: italic; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Sample DWP file&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;You can use this sample to build a DWP for the web part. (This assumes a strongly named assembly so you would have to update with your own projects details.)&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;WebPart xmlns="http://schemas.microsoft.com/WebPart/v2"&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;Description&amp;gt;This webpart displays the ability to goto particular items parent container&amp;lt;/Description&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;Assembly&amp;gt;SearchOverride, Version=1.0.0.0, Culture=neutral, PublicKeyToken=…………….&amp;lt;/Assembly&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;TypeName&amp;gt;SearchResultExtension.Override&amp;lt;/TypeName&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;Title&amp;gt;Search Results Override&amp;lt;/Title&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;FrameType&amp;gt;None&amp;lt;/FrameType&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;ResultListID xmlns="urn:schemas-microsoft-com:sharepoint:DataResultBase"&amp;gt;sch&amp;lt;/ResultListID&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;MaxMatchingItemsNumber xmlns="urn:schemas-microsoft-com:sharepoint:DataResultBase"&amp;gt;40&amp;lt;/MaxMatchingItemsNumber&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;Button xmlns="SearchResultExtension"&amp;gt;Items parent&amp;lt;/Button&amp;gt;&lt;/p&gt; &lt;p style="FONT-SIZE: 8pt; MARGIN: 0in; COLOR: navy; FONT-FAMILY: 'Courier New'; mso-outline-level: 1"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/WebPart&amp;gt;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/p&gt; &lt;p lang="EN" style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Arial; mso-outline-level: 1"&gt;Happy overriding!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=248439" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry><entry><title>What are the SharePoint Databases used for?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/nigelbridport/archive/2004/07/07/175036.aspx" /><id>http://blogs.msdn.com/nigelbridport/archive/2004/07/07/175036.aspx</id><published>2004-07-07T16:16:00Z</published><updated>2004-07-07T16:16:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;Microsoft Office&amp;nbsp;Portal Server 2003&amp;nbsp;and Microsoft Windows SharePoint Services use a number of different databases for different tasks.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;These databases are:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&amp;lt;...&amp;gt;_PROF&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;This is the profile database and contains SharePoint profile information for the Portal&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;One of these for each Portal&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&amp;lt;...&amp;gt;_SITE&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;This is the site database and contains all of the Portal and WSS site information&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;At least one of these for each Portal or WSS instance.&amp;nbsp; To help load balance, more can be created through the WSS Administration user interface.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&amp;lt;...&amp;gt;_SERV&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;This is the Service database and contains the alert definitions anf notifications, gatherer logs&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;One of these for each Portal&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&amp;lt;...&amp;gt;_Config_DB&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;This is the Configuration database and contains the server definitions for the farm environment&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;FONT face=Verdana color=blue size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;Only one of these for the entire farm.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=175036" width="1" height="1"&gt;</content><author><name>NigelBridport</name><uri>http://blogs.msdn.com/members/NigelBridport.aspx</uri></author><category term="SharePoint Technologies" scheme="http://blogs.msdn.com/nigelbridport/archive/tags/SharePoint+Technologies/default.aspx" /></entry></feed>