2016-08-23 1 views
0

Sharepoint 2013の特定のコンテンツタイプのすべてのページを検索し、そのタイトルのリストを出力するシンプルなWebパーツを作成しようとしています。私はそれを検索するために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)クエリが空白行で開始または終了しないことを確認します。

次に、結果が正しいものに変更されます。

関連する問題