Belirli bir klasöre ayrılmış, belirli bir klasöre ayrılmış, bu noktadan sonra yinelenen ve tüm ListItems (bir ölçütle eşleşen) ve Klasörler döndüren bir CAML sorgusu yazmaya çalışıyorum .Sonuç kümesindeki klasörleri içeren CAML sorgusu
İşte (okunabilirlik için biçimlendirilmiş) çalışması lazım gibi görünüyor sorgu için kod:
SPQuery query = new SPQuery();
query.Query = "
<Where>
<Or>
<Contains>
<FieldRef Name=\"FileRef\" />
<Value Type=\"Text\">foo</Value>
</Contains>
<Eq>
<FieldRef Name=\"FSObjType\" />
<Value Type=\"Lookup\">1</Value>
</Eq>
</Or>
</Where>";
query.ViewFields = "
<FieldRef Name=\"CustomField1\" Nullable=\"TRUE\" />
<FieldRef Name=\"CustomField2\" Nullable=\"TRUE\" />
<FieldRef Name=\"CustomField3\" Nullable=\"TRUE\" />
";
query.RowLimit = 500;
query.ViewAttributes = "Scope=\"RecursiveAll\"";
query.Folder = startingFolder;
DataTable dt = myList.GetItems(query).GetDataTable();
Yani - hayır klasörleri - Bu sadece ListItems döndürür.
Sorgudan diğer koşulları kaldırırsam, yalnızca FSObjType=1
'u bırakıyorum, bir COM istisnası alıyorum "Bu eylemi tamamlayama. Lütfen tekrar deneyin."
ViewFields'ı kaldırırsam, yalnızca Scope=RecursiveAll
ve FSObjType=1
'u bırakarak boş bir sonuç ayarlıyorum.
Bunu hiç çözdünüz mü? Aynı problemim var ve bir çözüm olmadıkça, devam etmek ve aslında bunu yapmak için özyinelemeli bir işlev yazmam gerekecek. – jeremcc
@codeflunky maalesef, bunu düzgün bir şekilde çalışmadım. –
@codeflunky Eğer bir çözüm bulursanız, lütfen buraya gönderin! –