Filed under: Sharepoint
A person might ask, Why would I want to add a webpart to the master page? For me the question normally is, Why do I need to have a top nav, left nav, and breadcrumbs? Isn’t just two of the three just as good? I prefer removing the left nav this opens the space in the page a great deal and on simpler sites works nicely. Now I have room to add sponsored links or links/info that I want on every page to the right and whats the point of using Sharepoint if you don’t leverage the list model. During my recent project we needed to ensure that someone updating the sponsors and links could do it with very little knowledge of websites and thru the browser. So we decided on using two Sharepoint lists to control the content of two webparts embedded in the master page. One of them is a standard Announcements list and the other is a Picture Library with one additional site column added “Web Page”. Here is a diagram of how it lined up:

This is very simple for a top level site just insert a dataview webpart in sharepoint designer and link it to your Sharepoint List and your done, but once you go into a subsite using that master page you get the dreaded:
“Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Windows SharePoint Services-compatible HTML editor such as Microsoft Office SharePoint Designer. If the problem persists, contact your Web server administrator.”
The answer is just to add this line four times per this excellent blog entry http://www.neilrichards.net/blog/?p=42 one for each parameter (Select, Update, Insert, Delete)
<WebPartPages:DataFormParameter ParameterKey=”WebURL” PropertyName=”ParameterValues” DefaultValue=”/” Name=”WebURL”>
What this does is tell the Sharepoint this list lives on the top level site. I find this handy in case there is a need to have announcements listed on every page.
SO your code goes from this :
<SelectParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
</SelectParameters>
<UpdateParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
</UpdateParameters>
<InsertParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
</InsertParameters>
<DeleteParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
</DeleteParameters>
To this:
<SelectParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
<WebPartPages:DataFormParameter ParameterKey=”WebURL” PropertyName=”ParameterValues” DefaultValue=”/” Name=”WebURL”></WebPartPages:DataFormParameter>
</SelectParameters>
<UpdateParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
<WebPartPages:DataFormParameter ParameterKey=”WebURL” PropertyName=”ParameterValues” DefaultValue=”/” Name=”WebURL”></WebPartPages:DataFormParameter>
</UpdateParameters>
<InsertParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
<WebPartPages:DataFormParameter ParameterKey=”WebURL” PropertyName=”ParameterValues” DefaultValue=”/” Name=”WebURL”></WebPartPages:DataFormParameter>
</InsertParameters>
<DeleteParameters>
<WebPartPages:DataFormParameter ParameterKey=”ListID” PropertyName=”ParameterValues” DefaultValue=”71A31DD1-1941-4159-B389-DF7373E9150C” Name=”ListID”></WebPartPages:DataFormParameter>
<WebPartPages:DataFormParameter ParameterKey=”WebURL” PropertyName=”ParameterValues” DefaultValue=”/” Name=”WebURL”></WebPartPages:DataFormParameter>
</DeleteParameters>
One I hope this better highlights http://www.neilrichards.net/blog/?p=42 as a excellent resource.
1 Comment so far
Leave a comment
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
[...] the entire site? Answer add a web part to a master page specifically a dataview webpart like in http://whostheman.wordpress.com/2009/05/09/adding-customized-webparts-to-masterpage/ . By linking this to a list it will allow a end user to update using the Sharepoint list item. To [...]
Pingback by HowTo: Adding an editable footer to Sharepoint « Who’s the Man Blog May 16, 2009 @ 3:19 am