List 从SharePoint 2010中的其他网站集检索列表项
我在从其他网站集检索列表项时遇到问题。我在尝试从当前网站集中接收列表项时没有问题。例如,工作。但返回一个错误List 从SharePoint 2010中的其他网站集检索列表项,list,sharepoint-2010,web-parts,List,Sharepoint 2010,Web Parts,我在从其他网站集检索列表项时遇到问题。我在尝试从当前网站集中接收列表项时没有问题。例如,工作。但返回一个错误 if (!String.IsNullOrEmpty(SiteName) && !String.IsNullOrEmpty(SPContext.Current.Web.Url)) { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite intranet
if (!String.IsNullOrEmpty(SiteName) && !String.IsNullOrEmpty(SPContext.Current.Web.Url))
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite intranetSite = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb currentWeb = intranetSite.AllWebs["/sites/projects/Physics"])
{
SPList postList = currentWeb.Lists.TryGetList("Issues");
if (postList != null)
{
IssueList.DataSource = postList.Items.GetDataTable();
IssueList.DataBind();
}
}
}
});
}
我在尝试接收列表项时,没有使用任何与我通常使用的代码不同的代码。唯一的区别是,这次我从另一个网站集获取列表项
谢谢你的帮助 问题是
intranetSite.AllWebs
。这将仅获取当前网站集下的SPWeb对象
不能直接从一个网站集推断另一个网站集
尽管/sites/projects看起来像来自/的chid网站集,但它;不是/站点只是一个托管路径和/站点/项目位于网站集层次结构的同一级别
您需要做的是:
if (!String.IsNullOrEmpty(SiteName) && !String.IsNullOrEmpty(SPContext.Current.Web.Url))
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPWeb currentWeb = new SPSite("http://server/sites/projects/Physics").OpenWeb())
{
SPList postList = currentWeb.Lists.TryGetList("Issues");
if (postList != null)
{
IssueList.DataSource = postList.Items.GetDataTable();
IssueList.DataBind();
}
}
});
}
现在我终于开始了解这个托管路径业务。一整天都在给我惹麻烦。谢谢你的帮助。我明天会尝试实现这个。不用担心-是的,一开始他们很困惑,因为他们搞砸了正常的等级制度。托管路径只是对网站集进行分组的一种“逻辑”方式,但根据对象模型,在Web应用程序眼中,所有网站集都是平等的,无论它位于哪个托管路径下。