2014-12-15 1 views
2

나는 사용자 정의 탐색의 모든 하위 웹을 쓰고 있어요와 SharePoint의 현재 웹에서 하위 웹을 얻기 : navigationSuccess에서자바 스크립트

navigation = function (clientContext, web) { 
    this.webCollection = web.getSubwebsForCurrentUser(null); 

    clientContext.load(web); 
    clientContext.load(this.webCollection, 'Include(Title, Url)'); 
    clientContext.executeQueryAsync(Function.createDelegate(navigationSuccess), Function.createDelegate(navigationFailed)); 
}, 

navigationSuccess = function() { 
    var webEnumerator = this.webCollection.getEnumerator(); 
    while (webEnumerator.moveNext()) { 
     var web = webEnumerator.get_current(); 
     // Writing out title/url for sub web. 
    } 
}, 

내가이 하위 웹 하위 거미줄이 포함되어 있는지 확인하고 싶습니다. 이것이 가능한가? 나는 get_current() 후에 web.get_webs()를 시도했으나 첫 번째 ("탐색"과 비슷한 새로운 함수에서) 처음으로로드해야합니다.

현재 하위 웹에 하위 웹이 포함되어있는 경우 체크/카운트를위한 큰 프로세스가 느껴 집니까?

답변

2

다음 예제에서는 SharePoint JSOM를 사용하여 하위 사이트의 수를 검색하는 방법을 보여줍니다 :

function getWebsCount(parentWeb,success,error) 
{ 
    var ctx = parentWeb.get_context(); 
    var webs = parentWeb.get_webs(); //parentWeb.getSubwebsForCurrentUser(null); 
    ctx.load(webs); 
    ctx.executeQueryAsync(
     function(){ 
      success(webs.get_count()); 
     }, 
     error); 
} 

사용을

var ctx = SP.ClientContext.get_current(); 
var web = ctx.get_web(); 
getWebsCount(web,function(count){ 
    console.log(String.format('Sub sites count: {0}',count)); 
}, 
function(sender,args){ 
    console.log(args.get_message()); 
}); 
관련 문제