0
안녕하세요.이 코드는 SharePoint 사이트를 통과하며 모든 목록을보고 레이블로 돌아갑니다. 기본적으로 내가는 현재 사이트 만 나열 잡고 싶어하고, 지금 아래되지 않은 하위 사이트가이 같은 내 SP 사이트가 :SharePoint 사이트/목록 열거 형
Main Site
-Documents
-Images
-MyListA
--Engineering (subSite)
---Documents
---Images
---MyList10
그것은 정상적인 목록 이미지 문서를 복제하고 MyList10가 표시됩니다.
foreach (SPList list in SPContext.Current.Web.Lists)
{
Label1.Text = SPEncode.HtmlEncode(list.Title); // notice that it will overwrite label text every time
}
는 또한 사용자가 제공하는 코드가 일부 메모리 누수가 언급 : 내가 원하는 모든 문서 이미지 MyListA는 당신이 필요로하는 모든이 당신
string webUrl = SPContext.Current.Site.Url.ToString();
using (SPWeb oWebsite = new SPSite(webUrl).OpenWeb())
{
SPWebCollection subSites = oWebsite.Webs;
foreach (SPWeb subSite in subSites)
{
SPListCollection collList = subSite.Lists;
foreach (SPList oList in collList)
{
Label1.Text = SPEncode.HtmlEncode(oList.Title);
}
subSite.Close();
}
}
메모리 누수에 대해서는 내가 처분해야한다는 사실을 언급하고 있습니까? – atrljoe
코드에서 내가 처형하기 전에 썼다. 코드에서 새 SPSite (webUrl)를 삭제해야합니다 (SPContext.Current.Site를 더 잘 사용하여 삭제해서는 안됩니다). 또한 예외가 발생하면 subSite 객체가 삭제되지 않으므로 subSite를 단순히 삭제하는 대신 {{}} finally {if (subSite! = null) subSite.Dispose()}를 시도하십시오. – EvgK
감사합니다. SPContext.Current.Web.Lists는 많은 시스템 목록을 반환합니다. 어쨌든 Documents, Images 및 사용자가 작성한 것과 같은 항목은 더 이상 반환하지 않습니다. – atrljoe