2011-07-27 23 views
5

CrossListQueryCache kullanarak bir Belge kitaplığının klasörler listesini (alt klasörsüz, yinelemeli olmayan) seçmek istiyorum.CAML Yalnızca üst düzey klasörleri seçmek için sorgu

Her şey, klasörler ve klasörlerin yalnızca ilk düzeyini değil, listedeki tüm klasörleri ve alt klasörleri aldığım dışında çalışıyor. "Farklı "Scope" ile klasörler sadece ilk seviye onların alt klasörler ve alt alt klasörler vb olmadan döndürülür, böylece ben aşağıdaki kodu değiştirmem gerekiyor ne ...

string query = string.Empty; 
string websQuery = string.Format("<Webs Scope=\"{0}\"/>", "None"); 
string lists = "<Lists ServerTemplate=\"101\"" + " ><List ID=\"" + listid + "\" /></Lists>"; 
bool useList = true; 
string relativeUrl = this.GetRelativeUrl(); 
query = string.Format("<Where><Eq><FieldRef Name='FSObjType' /><Value Type='LookUp'>1</Value></Eq></Where>", relativeUrl); 

CrossListQueryInfo info = new CrossListQueryInfo(); 
info.Lists = lists; 
info.Webs = websQuery; 
info.Query = query; 
info.ViewFields = "<FieldRef Name=\"FileLeafRef\"/>"; 
info.WebUrl = web.ServerRelativeUrl; 
CrossListQueryCache cache = new CrossListQueryCache(info); 
SiteDataResults sd = cache.GetSiteDataResults(site, true); 

cevap

İlgili konular