显示另一个站点中列表的列表视图Web部件

时间:2009-06-02 09:02:33

标签: sharepoint listview

我无法使用位于我的根Web应用程序中的Web部件中包含的列表视图来显示文档库的内容。

以下是网站结构:

main_site
    subsite1
        Shared Documents
    subsite2
        Shared Documents

我的网站部分位于main_site

在这个webpart中,我有一个Sharepoint ListViewWebPart,我想在其中显示来自subsite1的共享文档,但它似乎不起作用。我收到以下错误:

  

列表不存在

     

您选择的页面包含一个列表   那不存在。它可能是   被其他用户删除。

奇怪的是,当我调试时,我可以看到SPList已正确初始化并包含我的列表元素。但是,在Controls.Add(mylistview)行,是错误发生的地方。

以下是我用来将列表绑定到ListView的代码:

SPList list = SPContext.Current.Site.AllWebs["subsite1"].Lists["Shared Documents"];

ListView lv = new ListView();
lv.ListId = list.ID.ToString();
lv.ViewId = list.DefaultView.ID.ToString();
lv.DataBind();

this.Controls.Add(lv);

有人对这个问题有合理的解释和解决方案吗?

1 个答案:

答案 0 :(得分:3)

问题是该列表位于另一个站点。

可以使用ListViewWebPart从同一网站集中的其他网站引用列表。您需要使用WebId属性来执行此操作。这是a code example

另一个选项是使用SharePoint Designer创建数据视图Web部件。这将允许您使用来自其他站点或SharePoint Web服务的列表来提取数据。结果看起来类似于列表视图Web部件,并且您可以使用一些强大的功能。这是证明这一点的first blog post I found,应该有其他几个。

最后,您可以使用内容查询Web部件。你可能已经知道这个了,它实际上更多的是显示而不是操纵数据。

已修改以删除不正确的信息。