如何从SharePoint 2010中的子站点访问列表

时间:2012-07-11 04:59:55

标签: sharepoint sharepoint-2010

我创建了一个名为 Application Test 的站点。在此站点中,我再次创建一个名为子应用程序的子站点。

我在Visual Studio Project中添加了站点URL "http://SP2010:2222/" 项目范围是网站。 现在,当我尝试从子站点(子应用程序)访问列表( TestList )时,它会给出错误列表不存在。 遵循代码访问列表( TestList ):

using (SPSite sites = new SPSite(SPContext.Current.Site.Url))
        {
            using (SPWeb web = sites.OpenWeb())
            {
              SPList CurrentList = web.Lists["TestList"]; // Error comes here
            }
        }

有人有解决方案吗?

2 个答案:

答案 0 :(得分:1)

试试这个,

using (SPSite sites = new SPSite(SPContext.Current.Site.Url))
 {
    using (SPWeb web = sites.OpenWeb())
       {
          SPWebCollection subsites= web.GetSubwebsForCurrentUser(); //get subsites
           for (int i= 0; i< subsites.Count; i++)
              {
                SPWeb subSiteWeb= subsites[i];

                   SPList CurrentList = subSiteWeb.Lists["TestList"];
                   if (CurrentList != null)
                   break;       
               }                  
        }
 }

答案 1 :(得分:0)

SPContext.Current.Site是您将事物部署到的当前网站 - 无论它是什么。但是当您sites.OpenWeb()没有任何参数时,会打开RootWeb,如果根网站没有您的列表,您将无法找到它。

尝试使用各自的网址明确打开网站和网站,例如http://SP2010:2222/