Using a DataSource in a Data View Web Part (DVWP) in a Different Site in SharePoint Designer 2010
For whatever reason, Microsoft in its infinite wisdom seems to have removed the ‘Connect to another library…’ link in the Data Source Library in SharePoint Designer 2010. Maybe that capability is hidden somewhere else now, but as my pal Chris Givens pointed out the other day in his Missing Features from SharePoint Designer 2010 post, it’s not “findable”.
Fortunately there’s a workaround and all of your 2007 Data View Web Parts (DVWPs) should work in 2010. (At least if this is the only issue!) You can simply add the same line into the DataSource that you would get if you used the ‘Connect to another library…’ link in 2007. The net-net in 2007 is that you end up with the WebPartPages:DataFormParameter named WebURL in your DataSource section. That’s the entire difference in the code if you want to access content in a different site: the WebURL parameter. By setting that parameter to the relative URL of the site where the content resides, you can access content in any other site with a DVWP, just like in 2007. You just have to do it manually in the Code View.
Here’s an example of accessing an Announcements list from the root site in a SharePoint 2010 Site Collection which resides in a subsite called ‘Marc’. Note that I’ve also switched from ListID to ListName in this example. As long as your information architecture is solid, that switch can be useful to make your DVWP code more readable. It also can make your DVWP more portable to other sites or Site Collections.
<DataSources> <SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" UseServerDataFormat="true" selectcommand="<View&gt;</View>" id="dataformwebpart1"> <SelectParameters> <WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="Announcements"/> <WebPartPages:DataFormParameter Name="WebURL" ParameterKey="WebURL" PropertyName="ParameterValues" DefaultValue="/Marc"/> </SelectParameters> </SharePoint:SPDataSource> </DataSources>
<UPDATE date=2012-05-07>
Note that you may also need to remove several attributes in the WebPartPages:DataFormWebPart header. If you are getting an error, check for attributes like this:
ListId="465831c5-3df1-4259-ba87-b9278007aba5" ListName="{465831C5-3DF1-4259-BA87-B9278007ABA5}"
and remove them. Removing these attributes won’t break the DVWP, and will fix the error.
</UPDATE>
I am getting this error: “One or more field types are not installed properly. Go to the list settings page to delete these fields.” I followed your instructions but I don’t know how to solve this error
@Lamar:
That usually means you’re trying to retrieve a column with an invalid name. Make sure you’re using the InternalName, not the DisplayName.
M.
Marc – Getting an error “reference to variable or parameter ‘Row Limit” cannot be resolved” when rebuilding a DFWP and trying to deploy it to another page. The original DFWP is working still on the original page but the saved file and the rebuild isn’t. In other words, this is an exact replica of the environment but on one page she works and one she doesn’t.
Any tips?
Here’s to the code if it helps:
https://jsfiddle.net/webbrewers2/0tvwbgf7/