Displaying the contents of a list that resides in a different site, is not a standard out-of-the-box feature of both WSS v2 and SPS 2003. It can however be accomplished in several ways:
- Use FrontPage to add a DataViewer-webpart. Although it’s a standard SharePoint-webpart, the only way to use it on a page and configure it, is by using FrontPage. Jan Tielens explains this is his article. Biggest disadvantage of this method is that the page you edited using FrontPage gets unghosted. You can read more this effect in this MSDN-article. Todd Bleeker published a list of the biggest disadvantages of unghosted pages.
>> A small trick to get around this problem is to use FrontPage to add the DataViewer-webpart to a temporary (test) page, export the webpart by using the Export-function of the webpart’s menu, delete the temporary page and import the exported webpart (dwp) to the page you needed to see the list.
- Use a third-party webpart that has similar functionality as the DataView-webpart, but doesn’t require the use of an editor as FrontPage to add it to the page. There are several manufacturers that provide this type of webpart like CorasWorks and BrightWorks, but there are also some free (usually less advanced and less easy to configure) webparts, like Carlos Sanz’s csegRollUp.
- Use the FlexListViewer-webpart!
FlexListViewer-webpart is able to display any type of list and can be easily configured, just by configuring the address of a view of the list.
Features:
- Easy configuration
Displays the contents of a view on a list. Therefore the columns to be displayed, filtering and sorting can be configured on the view itself, using the standard SharePoint-screens, everyone is already accustomed with. All that needs to be configured is the URL of the view of the list.
- Fast
Uses the SharePoint objectmodel instead of the SharePoint webservices, which makes it just as fast as a local list (part of current site) that is displayed on a page.
- Customizable
The HTML that is displayed is rendered using an stylesheet (Xslt). By customizing the standard stylesheet or specifying a different stylesheet, the way the list is displayed can be completely customized.
There is however one important restriction: The list to be displayed must be part of a site that resides on the same SharePoint-installation (any virtual server or site collection, as long as it’s on the same server/farm).
FlexListViewer can be downloaded >>here<<! (updated version: may 10th ’06 – v1.6!)
Other posts about FlexListViewer:
- FlexListViewer-webpart update: support for LookUp-fields
- Custom formatting for SharePoint lists using FlexListViewer-webpart
- FlexListViewer webpart update: better support for optional and percentage fields
- FlexListViewer for MOSS 2007 / WSS v3
Robert te Kaat
58 comments
When installing the webpart, the option -globalinstall must be specified. (see document in zip).
When omitting that option, the webpart is installed into bin-folder of the virtual server and is not fully trusted by SharePoint (code-access security). If this is the case, I suggest you uninstall the webpart and install it again by passing the -globalinstall option.
Another option is to configure SharePoint to trust all webparts that are installed on the server by settings the trust-level to Full in the web.config of the virtual server:
<trust level="Full" originUrl="" />
The reason the webpart needs additional trust (code-access security) is that it uses the SharePoint-objectmodel to get information of the specified view (list) and to read the Xslt-file from the filesystem/url.
Robert te Kaat
Great idea and Web Part Robert. Having one issue though, or maybe this is not supported? Can you display a list that is from a subsite? It works fine with a list from a higher parent site, but not the other way around.
I get a "System.NullReferenceException: Object reference not set to an instance of an object." error.
Thanks!
Kale Davis
This is very nice! Will the code for it be available or is this an as designed web part or at some point a commercial web part?
Thanks for the work!
Brian
Brian Standen
This webpart IS and will always BE 100% free!
I expect similar functionality to be available in WSS v3/2007. Therefore it has no use for me or my company to make this a commercial webpart. Furthermore, as I stated in this article, there are already several commercial products which have similar functionality and a lot more.
And it’s always nice to give something back to the SharePoint-community! ๐
I have no plans to release the source code, since the webpart is part of a SharePoint-library we use in our company for commercial exploitation. However, the assemblies are not obfuscated, so you can use Reflector to take a look at the code (and maybe point out to me where the bugs are located! :)).
My intention is to fix some of the issues people report in this thread. Some issues may also be related to bugs in the supplied xslt-file. Those bugs can be fixed by people themselves without the need for the original source code.
Robert te Kaat
Hi,
This is a great webpart but i have a problem …
Everything works fine on my virtual machine but when i try it on a production server i get this error :
Error occurred: System.Net.WebException: The remote server returned an error: (401) Unauthorized. at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetResponse() at InfoSupport.SharePoint.FileUtil.LoadDocument(String url, HttpContext context) at InfoSupport.SharePoint.WebParts.FlexListViewer.RenderWebPart(HtmlTextWriter output)
at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetResponse() at InfoSupport.SharePoint.FileUtil.LoadDocument(String url, HttpContext context) at InfoSupport.SharePoint.WebParts.FlexListViewer.RenderWebPart(HtmlTextWriter output)
What can be the problem here? I did a global installation and the security level is "medium"
Thanks for the help !
Bart Vandenheede
Bart Vandenheede
About security: The webpart uses the identity of the user that accessed the page the webpart is on, to access the list on the other site. This means that it will only work if the user has read-access to the site the list is on.
However, that is not the problem here. The webpart tries to load the xslt-file and the current user does not seem to have access to it. When no xslt was specified, the standard xslt is loaded. It’s location is in the wpresources-folder of the webpart and should therefore always be loaded without any trouble.
–> Did you specify a custom xslt?
–> Did you specify certain NTFS-security-settings to any of these folders?:
– C:Program FilesCommon FilesMicrosoft Sharedweb server extensionswpresources
– <local folder corresponding to the web-address of the folder that contains the custom xslt>
Robert te Kaat
i use the default xslt
I gave the user read/modify rights but i still get the same error
Can there be another reason?
Thx for the help !
(you can also email me on bart-at-orbitone-dot-com
Bart Vandenheede
Bart / Robert, were you able to fix the 401 error? I’m having the same problem… any help is appreciated. Thanks!
Luke
Luke
Everybody who’s having problems with the webpart, please drop me an email and I will send you a debug-build. After installing the debug-version, the error-messages will also contain line-numbers, so I know exactly which line of code is causing the error.
(robert.te.kaat AT gmail.com)
Robert te Kaat
Is it possible to use it on My Site with links to a detailpages?
j_ligtenberg @ hotmail.com look in your InfoSupport database for my companyaddress ๐
Jan Ligtenberg
Because the FlexListViewer-webpart uses an xslt-file to do the html-rendering, you can render a list in any shape you like. The webpart provides the xml that contains the definition of the list (columns (name, type, etc) and the data (separated into ‘parts’, eg: part1 containing the username, part2 containing the userid). If you add an url-column to the site, instead of just printing the url as a text/link, you can use the url to make the value of another column the link to the url.
This does however require some xslt-knowlegde. Flexibility (hence the ‘Flex’ :)) comes with a price…
I will write a post on how to use the FlexListViewer-webpart to display a list with custom HTML-rendering. But I got to find some time first…
Robert te Kaat
Those of you getting a "System.NullReferenceException: Object reference not set to an instance of an object"-errormessage, I may have figured out the reason for that error. It may be caused by an incorrect URL to the list to be displayed. The URL must be the URL for a VIEW of the list, not the list itself. So instead of specifying:
http://portal/Lists/MyList
try specifying:
http://portal/Lists/MyList/AllItems.aspx
Please let me know if this solves your problem.
Robert te Kaat
The error may also be caused by collumns on the View with special characters. David Beraha found out that the NullReferenceException in his case was caused by a collumn with the name "Geändert" (german for "Changed").
If you walk into this error, try to remove those collumns from the view to determine which collumn caused the problem. (…and then post it here, so I can try to fix it! :))
Robert te Kaat
the error was also caused by links having blanks. the link will look something like this:
http://portal/Our%20Community/Lists/Inspirational%20Quotes/AllItems.aspx
hosting the list item to a site without spaces will show you no errors.
nyagi
great
tosc
Great work, thank you.
Do you plan to enhance the FlexListViewer-webpart with authentication functionality?
I like to connect listforms from a site where the client user has no access.
If you plan to do, I could support you ๐
daniel
Why would you want such functionality? If the information is not secret, why not give the user read-right in the target list? (you can still deny access to the site)
To do so, it would need to impersonate an account which is allowed to read the list. However impersonating an account doesn’t work when accessing the SharePoint objectmodel.
(I don’t consider the workaround that people have come up with to be realistic workarounds (COM+, etc))
Robert te Kaat
We have recently downloaded and installed the new version v1.5 of FlexListViewer – but unfortunately an error message (see below) occurs when using it. Any clue on what that means?
Thanks in advance for help.
Error occurred: To use the RootFolder property, set the IncludeRootFolder property on the SPListCollection object to true.
Details: Microsoft.SharePoint.SPException: To use the RootFolder property, set the IncludeRootFolder property on the SPListCollection object to true. at Microsoft.SharePoint.SPList.get_RootFolder() at InfoSupport.SharePoint.SPListUtil.GenerateListViewObjectModel(SPView view) at InfoSupport.SharePoint.WebParts.FlexListViewer.RenderWebPart(HtmlTextWriter output)
at Microsoft.SharePoint.SPList.get_RootFolder() at InfoSupport.SharePoint.SPListUtil.GenerateListViewObjectModel(SPView view) at InfoSupport.SharePoint.WebParts.FlexListViewer.RenderWebPart(HtmlTextWriter output)
John Edemann
There are issues when using it do display remote document libraries.
FlexListViewer-webpart was intended for use with lists. Since doclibs are always accompanied by a list that holds the filenames, metadata, etc, FlexListViewer can display those as well. However in some cases it seems to crash (this error has been reported before).
For now I have no intentions (=time & energy) to fix these errors, but perhaps in the near future I will.
Robert te Kaat
Hi,
Today i did a second test with the FlexWebpartViewer, but is still get the same error below. Is it possbile that the webpart does not work with https? When i do a test on a http portal on the same webfarm it works.
Error occurred: System.Net.WebException: The remote server returned an error: (401) Unauthorized. at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetResponse() at InfoSupport.SharePoint.FileUtil.LoadDocument(String url, HttpContext context) at InfoSupport.SharePoint.WebParts.FlexListViewer.RenderWebPart(HtmlTextWriter output)
at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetResponse() at InfoSupport.SharePoint.FileUtil.LoadDocument(String url, HttpContext context) at InfoSupport.SharePoint.WebParts.FlexListViewer.RenderWebPart(HtmlTextWriter output)
Thanks in advance for the information!
Kind regards
Bart Vandenheede
401 Unauthorized could be solved by enabling anonymous access to the virtual folder "_wpresources/InfoSupport.SharePoint.WebParts.FlexListViewer1.5.0.0__15243da486dfb77f" via IIS management console
01eg
I have tried to use the flexlistviewer webpart (v 1.6) on the same page as where the list itself is located, this however generates an error. The reason why i would like to do this is that I would like to use the xslt transformation oppotunities the webpart provides.
Is the error by design or should the webpart be able to handle this?
The error message:
Error occurred: To use the RootFolder property, set the IncludeRootFolder property on the SPListCollection object to true.
Janus Thousig
Hello Janus,
The RootFolder-error is a known bug of the FlexListViewer-webpart. You are using it to display the contents of a document library, instead of a ‘normal’ list. Other people have stumbled into this error as well. So far I haven’t been giving it much priority, but I may decide to fix it in a future version. No guarantees though! ๐
Robert
Robert te Kaat
Hi Robert
Thanks for the very fast reply. I am however using a normal custom list and it works in all other instances except when the list and the webpart are both present on the same page. I have tried on both SPS and WSS sites with the same result.
Should it be possible to have the list and webpart on the same page?
Loooking forward to heering from you.
Kind Regards.
Janus Thousig
It should definately be possible. Can you save the custom list as a template (stp) and send it to me (on my gmail-account which I mentioned in one of my earlier replies on this article). I can only use Dutch and English templates, so if the list is in a different language, please recreate it as an English list.
Robert te Kaat
Nice Job! Great idea and implementation!
Mark Kruger, SharePoint MVP
I have upgraded my wss to asp.net 2 – and the Flexpart Viewer is not working, as soon as it is added to a page/site, an error occours and I can only remove it
Normann P. Nielsen
I never tested it on ASP.NET 2.0. I don’t realy see any reasons for switching to .NET 2.0 when using WSS/SPS 2003.
Robert te Kaat
Cool! Very useful webpart!
It was just for my needs… Thanks ๐
Geri Krumova
I want to get the list to show items that by clicking on will open and was expecting to see some sort of option available in the webpart for enabling this but cannot. Does this have to be coded in XSLT or am I missing something obvious ?
Steve Sumner
Steve, the webpart displays the content of the view who’s URL you specified. If you want other fields to display, you can just change the settings of the view, since that’s possible with standard SharePoint functionality. Only for unsupported things (like the snooker-balls in my other article), you need to create your own XSLT.
I think you need to modify the view, so that is displays the field with a link to the item. This is usually only possible for one field of the list (like the “Title”-column).
Robert te Kaat
Robert,
Here’s what I’m trying to do… I’m trying to re-use your functionality in a connected web part. In other words, one list contains URLs and your web part will render the list referenced in the other.
I have looked at the code in the .NET Reflector and there’s one piece that doesn’t come thru (it’s in the SPUtil.GetSPListItemValueParts). It’s one of those things. Is it possible for you to provide that for us or could you provider the connected functionality?
Shane Bishop
Excellent web part. We have a great many uses for it here. We have run into one hurdle however that I was hoping you could get us over. In our environment we require client certificate in IIS. This webpart, along with many other things here, won’t work with client cert it seems. I was wondering if there was a way around this? Thanks!
Jacob Skaggs
Robert,
After looking a bit more into the code, it looks like this PrivateImplementation has something to do with changing the FieldType into an integer.
So, I guess, if you have a mapping of field types to integers, that would be perfect.
Thanks again
Shane
Shane Bishop
In terms of security authentication, we are constantly getting authentication errors when we try to display the contents from one SharePoint Portal Area list (or Document Library) within another SharePoint Portal Server Area. The problem does not occur when you have the FlexListViewer sitting on a SharePoint Portal Server area page, that is pulling information from a WSS top level site collection. I assume this is because your code is based purely on WSS security and not portal security? I found that it quickly locked out my account because it was unable to authenticate, even though a am a local administrator on the box and a SharePoint administrator. Is it a kerberos issue? (I have a single portal server with SQL 2005 installed on the same box).
Will there be a fix for this issue?
AlanC
I am getting a “System.NullReferenceException: Object reference not set to an instance of an object”-errormessage. This only occurs when a column in one of the list items is blank. If all columns have an entry, it works fine.
I am using a milestone schedule which has a draft, review and final column. In some cases there is only a final in which case draft and review are blank. This throws the exception; when I put dates in the draft and review columns it works,
Bill Burke
Hello Bill. We will fix this in a future version (SharePoint 2007 only!). Can’t really tell when we have the time though… ๐
robertka
Thanks…… and thank you for the fine work.
Bill Burke
Hi,
I guess I’m trying to use your web part ifor something it wasn’t intended for, however I was wondering if it can be made to work for document libraries with sub folders. I’m finding that although I can display the list of documents, the href which is created does not include the sub folder within this link (i.e. ows_FileRef) and therefore fails to open.
Thanks for your help.
P.S. Works great for normal lists and very much appreciated
Robin Burrows
You are correct: the webpart was never designed to be used with document libraries. However, in some cases it may work. You use subfolders, which are indeed not supported.
By the way: there are several articles that advice – instead of using subfolders – to use properties (columns) to group files or to use more than one document library). You have to decide for yourself whether that’s an alternative. However, we have no plans to enhance the document library support for FlexListViewer…
robertka
I think it’s better to use the DataForm WebPart.
This Webpart you can find only in the SharePoint Designer. For the description follow the link below.
http://www.sharepointblogs.com/mypoint/archive/2006/12/08/16743.aspx
Sub Zero
sub zero,
Apart from the fact this is about the Sharepoint 2003 version of the FlexListViewer, we acknowledge in this posting that using the dataview webpart (the predecessor of the dataform webpart) is an option.
However, in your posting you need about 2 printed pages to describe how to use this dataform webpart, AND you need to buy a license in order to use Sharepoint Designer.
We feel using the FlexlistViewer can make a big difference, since you do not need to use Frontpage or Sharepoint Designer AND it gives you an out of the box stylesheet to display lists on other sites.
***sidenote***
Perhaps you can translate your posting from german to english? Since this is an english related blog a lot of our viewers are from english-speaking countries and I do think they can / will have some trouble understanding your posting.
bartg
What are the licensing requirements for this Web part?
djb
djb,
You can use this webpart freely. However if you want to use it in a commercial software solution, please contact us through the contact form.
bartg
Hi,
this Webpart is very useful – thank you. But in some columns, like “people and groups” the content isn’t displayed properly. For example: If the list field contains usernames, the FlexListViewer shows something like 2,#username. Does anybody have an idea?
Thanks for the help!
Vassilios
Thanks for this useful web part.
I am struggling to display a list with custom html rendering.
Has anyone tried to use custom xslt file yet?
Your help would be appreciated. Thanks!
Marija Petkova
After upgrading SPS2003 with SP3 we have a problem with the flexlistviewer.
The problem is that after a few minutes the session closed and a error displayed.
Is this a known problem and can it be solved ?
Rene Schenk
How difficult would it be to adapt this functionality to a discussion board? I tried out-of-the-box and got the following error:
Error occurred: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Details: System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). at System.Guid..ctor(String g) at Core.SPListUtil.GetSPListItemValueParts(SPView view, ListViewField listViewField, SPField field, Int32 itemId, Object fieldValue) at Core.SPListUtil.GenerateListViewObjectModel(SPView view) at FlexListViewerMOSS.FlexListViewer.RenderContents(HtmlTextWriter output)
at System.Guid..ctor(String g) at Core.SPListUtil.GetSPListItemValueParts(SPView view, ListViewField listViewField, SPField field, Int32 itemId, Object fieldValue) at Core.SPListUtil.GenerateListViewObjectModel(SPView view) at FlexListViewerMOSS.FlexListViewer.RenderContents(HtmlTextWriter output)
Rob Commarota
Rob,
You can download the sources at http://www.codeplex.com/isdemos.
If you come up with a solution, feel free to send it to me and I’ll spread it through the community ๐
Regards,
Bart
bartg
Bart:
Thanks. I was able to make some changes to your code and I got it working. I’d be happy to share – just let me know the best way to get the files to you.
Thank you for a fantastic webpart.
Rob
Hi Bart & Rob,
Has this fixed been rolled into a FlexListViewer release? If not, Rob are you able to supply the code changes necessary?
Thanks,
Chris
Chris
Chris, the sources are no longer maintained by us.
I don’t think Rob merged his changes into the codebase on codeplex, so he will need to supply them to you. (if he wants to share it).
robertka
Hello
I am tryint to access site from another server which is in my local domain, it is giving me following error, please advise
——————–
Cannot access the view of the list. Are you authorized?
Details: The Web application at http://portal/Lists/Issues List/AllItems.aspx could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.
Ani
Failed to get value of the “Attachments” column from the “Attachments” field type control. See details in log. Exception message: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)..
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Microsoft.SharePoint.SPException: Failed to get value of the “Attachments” column from the “Attachments” field type control. See details in log. Exception message: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)..
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SPException: Failed to get value of the “Attachments” column from the “Attachments” field type control. See details in log. Exception message: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)..]
Microsoft.SharePoint.WebControls.BaseFieldControl.OnLoad(EventArgs e) +1661
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061
Antonio
antonio,
What’s your question?
Bart
bartg
Antonio, you error occurs when you have another webpart (hidden or otherwise) on your page. To fix the “Failed to get value of the “Attachments” column from the “Attachments” field type” error, you need to hide the other “part1” span in the other webparts.
At the bottom of page, simply add this script
var y = document.getElementById(‘WebPartWPQ2’), child;
while(child=y.firstChild)
{
y.removeChild(child);
}
Hitender
Sorry I haven’t checked back on this site in some time. I went ahead and uploaded the code changes I made as a patch on the codeplex site (http://www.codeplex.com/ISDemos/SourceControl/ListDownloadableCommits.aspx) – not sure if that was the right way to do it or not. Anyway, it is currently being evaluated. I’d be happy to post the code somewhere else if there is a better place.
Rob
Thanx Hitender, your code helped me a fixen a poorly post.aspx page.
deadmanjones