2011-02-16 51 views
3

我有一個SharePoint網站。我正在嘗試打開一個子網站並獲取該子網站中所有列表的列表。此代碼返回頂級「http:// myspserver」列表。
如何獲取/ mysubsite中的列表?SharePoint子網站 - 遍歷列表

string webUrl = "http://myspserver/mysubsite"; 

using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web 
{ 

    SPListCollection collList = oWebsite.Lists; //Open Lists 

    foreach (SPList oList in SPContext.Current.Web.Lists) 
    //For Each List Execute this 
    { 
     .... 
    } 
} 
+0

也許這可以幫助HTTP ://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.getlist.aspx – 2011-02-16 15:56:54

回答

4

您應該遍歷collList而不是SPContext.Current.Web.Lists

foreach (SPList oList in collList) 
{ 
} 

SPContext.Current.Web.Lists會得到你目前在網站內。據推測,這是http://myspserver當你運行你的代碼。

另外,請注意,您的代碼泄漏 - 您不處理SPSite對象。它應該看起來像:

using(SPSite site = new SPSite(webUrl)) 
using(SPWeb oWebsite = site.OpenWeb()) 
{ 
} 
+0

我仍然試圖理解內存泄漏的概念是否有任何信息可以讓我嘗試並幫助我理解泄漏。 – atrljoe 2011-02-16 18:45:35

2

您創建SPListCollection對象,但您使用SPContext.Current.Web.Listsforeach,糾正你的代碼,這樣,事情應該是罰款:

string webUrl = "http://myspserver/mysubsite"; 

using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb()) //Open SP Web 
{ 

    SPListCollection collList = oWebsite.Lists; //Open Lists 

    foreach (SPList oList in collList) 
    //For Each List Execute this 
    { 
     .... 
    } 
}