我无法使用位于我的根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);
有人对这个问题有合理的解释和解决方案吗?
答案 0 :(得分:3)
问题是该列表位于另一个站点。
可以使用ListViewWebPart从同一网站集中的其他网站引用列表。您需要使用WebId属性来执行此操作。这是a code example。
另一个选项是使用SharePoint Designer创建数据视图Web部件。这将允许您使用来自其他站点或SharePoint Web服务的列表来提取数据。结果看起来类似于列表视图Web部件,并且您可以使用一些强大的功能。这是证明这一点的first blog post I found,应该有其他几个。
最后,您可以使用内容查询Web部件。你可能已经知道这个了,它实际上更多的是显示而不是操纵数据。
已修改以删除不正确的信息。