2016-08-23 12 views
0

특정 콘텐츠 형식의 모든 페이지를 검색하고 제목 목록을 출력하는 Sharepoint 2013 용 간단한 웹 파트를 작성하려고합니다. CAML 쿼리를 사용하여 검색하고 있습니다. 그러나 어떤 쿼리에 관계없이이 Sharepoint 사이트의 모든 파일과 폴더 목록에있는 결과입니다.CAML이 페이지를 검색하면 사이트의 모든 파일과 폴더가 반환됩니다.

마지막으로, CAML 쿼리를 "문자 T로 시작하는 모든 것을 찾으십시오."로 줄 였지만 여전히 결과는 사이트의 루트 수준에있는 모든 파일과 폴더를 출력합니다.

내가 뭘 잘못하고 있니?

protected override void CreateChildControls() 
    { 
     Label label1 = new Label(); 

     try 
     { 
      SPQuery query = new SPQuery(); 
      query.Query = @"<Query> 
          <Where> 
           <BeginsWith> 
           <FieldRef Name='Title'></FieldRef> 
           <Value Type='Text'>T</Value> 
           </BeginsWith> 
          </Where> 
          </Query>"; 

      using (SPSite site = new SPSite("https://xxxxxx/sites/xxxxx/en/xxxx/")) 
      { 
       using (SPWeb web = site.OpenWeb()) 
       { 
        PublishingWeb pubweb = PublishingWeb.GetPublishingWeb(web); 
        PublishingPageCollection collection = pubweb.GetPublishingPages(query); 

        //now output the results of the query       
        label1.Text = "Items: " + collection.Count.ToString(); 
        for (int i = 0; i < collection.Count; i++) 
        { 
         label1.Text += collection[i].Title + "<br>"; 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      label1.Text = ex.Message; 
     } 


     Controls.Add(label1); 
    } 

답변

0

이상하게, 당신은 두 가지를 수행해야합니다

1) 개폐 태그를 제거를;

2) 쿼리가 시작되지 않거나 빈 줄로 끝나지 않았는지 확인하십시오.

그러면 결과가 올바른 결과로 바뀝니다.