Child objects within SharePoint, like a list in a Site, share an inherent connection with that Parent object. Today's blog is regarding the usage of one SharePoint object like a list and how we can project that list into other locations.
Now in the example here, the Engineering department wanted to create an interactive and collaborative list based around ideas for their weekly Monday night meeting and they want it to be easily accessible from the Engineering home landing page. The Discussion Board List template was an ideal match for this request and the list can be displayed on the landing page by editing it and adding the List View Web Part.
You can see it has been created underneath the Engineering site which itself is in a political site hierarchy design along with HR, IT, Projects, etc. underneath the parent Site Collection called Synergy Alternative Power. Traditionally, this list could be viewed here and/or displayed in a List View Web Part on the landing page of the Engineering site as shown here :
The issue with the List View Web Part is that it can only display List or Library content from the current Site Parent and below, ie - where are we right now? We're in the Engineering landing home page therefore we only have access to the lists and libraries (or objects) that reside underneath the Engineering site or parent object.
Now management have decided that the other departments will join the Engineering meeting and form a weekly Company meeting. The managers would like the Meeting Discussion Board displayed in a Web Part on the IT site landing page as well so that the IT department can view and add their own ideas.
Here a decision needs to be made from management and/or key stakeholders:
· Do we maintain one list or multiple lists? A very common question as SharePoint Administrators/Designers we need to ask our clients and one that I'm faced with very often. Either is acceptable but one may be easier to secure, maintain or implement. If you choose to maintain one list then the following procedure will assist you. If you decide each department should maintain there own meeting ideas then I will attempt to cover this in my next blog. In that solution we need to aggregate data from multiple lists into one Web part should the need ever arise to collate all data.
While there are many different ways and web parts to achieve this in SharePoint 2010 I'm going to share the best way I've found to accomplish this and that is to save the List View Web Part of the List into the SharePoint Web Part Gallery for reuse. Here's how:
· Go to the page in which your Web Part resides, in this case the Engineering landing page.
· Edit in SharePoint Designer (SPD) from the Site Action menu. If SPD is not installed the option will still be in the Site Action menu and you will be prompted to download and install it.
Now you have two options here in SPD. You can either:
· Click Lists and Libraries on the Left Hand Navigation Pane
· Select your List or Library and then click on the default view from the Right Hand Side Views section
Or
As my list already appears in my Engineering homepage in a Web Part I can simply
· Click 'Edit Site home page'
· Now wait for the page to load in editing mode and highlight the Web Part you would like to distribute
· You will notice the List View Tools in green highlighted up in the Ribbon. Underneath this is four tabbed sections
· Select the Web Part tab
· On the far right hand side of the ribbon you have two options. 'To Site Gallery' and 'To File'.
· Click on 'To Site Gallery'
Note: It's a good idea to Name the Web Part without spaces otherwise %20 will appear instead of the space wherever you use it. It's good practice to avoid spaces as much as possible in SP.
· Before saving to the Site Collection Web part Gallery you have the option of editing the web part before doing so by clicking Set Properties.
· If you're happy with them Click Ok
· After you click Ok a very important message appears in relation to what I was discussing in my introduction.
It asks Do you want the Web Part to always show List Data from the current Web Site (ie - the Engineering Site where the list resides)?
Or
Do you want the Web Part to show data from the list at the Site at which you place this Web Part?
In this case we will almost always Click Yes for our purposes but of course you have the option of utilizing separate Lists and List templates, etc.
· After clicking Yes you can now close SPD. We did not edit anything in SPD only use its functionalities to have access to the Edit View and Web part exporting options.
· Now go back to your Site Collection Home Page, in this case Synergy Alternative Power
· Click on Site Actions then Site Settings
· Underneath the Galleries section click Web Parts
· Your Web Part should now be available to the rest of your Sites in your Site Collection as it now resides in the Site Collection Web Part Gallery
Let's test it out by complying with the IT department's request to have the Meeting Ideas Web Part added to their Home landing page as well
· Navigate to another Site in your Site Collection
· Click Site Actions then Edit Page or Edit Page icon above the ribbon
· Click in the editable Web Zone where you would like to place the Web Part
· Click the Insert tab under the Editing Tools in the ribbon
· Click Web Part
· Under Web Part Categories there should now be a new Category called 'Miscellaneous' that will contain any newly submitted items into the Web Part Gallery
· Click Add
· Click the Disk Icon above the Ribbon to save the page
Now if you get an error with any type of List or Library at this stage which I did (purposely of course :p) you will get the following error:
When this occurs you need to Click on the Link on the page 'Web Parts Maintenance Page' to resolve the error. In this case there are two XSLT List View Web Parts and one of them has a conflict. Our newly created one needs to be deleted So highlight it and click the Delete option. To return to the page click Go Back to Web Part Page.
TIP: If you ever need to go to the 'Web Parts Maintenance Page' simply add '?contents=1' (without the single quotation marks) at the end of the url in the address bar.
So why did this occur? You see there is a very important caveat to this whole process and one I discovered the hard way.
CAVEAT: Do not enable Management of Content Types on any List or Library you wish to Export or display on an external Site from the one in which it was created.
Now this did happen to me with this particular List as Management of Content Types is enabled by default. Most lists will not but very often when you want to alter content types this needs to be switched on so that you can. If this is the case and you still want to display the List elsewhere, don't alter the content type, instead attempt to create a new one, eg. Column content type.
· To resolve this we need to go back to our Site Collection Web Part Gallery and delete the custom Web Part we created.
· Then we need to make sure Management of Content Types is not enabled. There are a few ways to do this.
- The easiest is in SPD. In SPD go to your List and under Settings-> Advanced Settings un-tick Allow Management of Content Types as shown below:
- The other method is to navigate to the List Settings, click Advanced Settings and click No next to Allow management of content types? Then click ok.
· The Final Step is to proceed with the solution above all over again. Yes it's frustrating when you find out that Content types is on so it's a good idea to check beforehand and also inform the Site\List administrator of this issue as well.
The IT Site landing page will then have the list web part and both are updated as changes are made as it is pointing to the same original list.