相关疑难解决方法(0)

包含结果集中文件夹的CAML查询

我试图写一个CAML查询执行针对特定SPList,范围限定于特定的文件夹,从该点递归,并返回所有listItems中(其中符合标准)和文件夹.

这是查询的代码,它似乎应该工作(格式化为可读性):

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();
Run Code Online (Sandbox Code Playgroud)

所以 - 这只返回ListItems - 没有文件夹.

如果我从查询中删除其他条件,只留下FSObjType=1,我得到一个COM异常"无法完成此操作.请再试一次."

如果我然后删除ViewFields,只留下Scope=RecursiveAllFSObjType=1,我得到一个空的结果集.

sharepoint caml spquery

11
推荐指数
3
解决办法
5万
查看次数

CAML查询仅选择顶级文件夹

我想使用CrossListQueryCache选择文档库的文件夹列表(没有子文件夹,而不是递归).

一切都工作正常,除了我收到列表中的所有文件夹和子文件夹,而不仅仅是第一级文件夹.我需要在下面的代码中进行更改,以便只返回第一级文件夹,而不返回其子文件夹和子子文件夹等...

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);
Run Code Online (Sandbox Code Playgroud)

c# sharepoint caml sharepoint-2010

5
推荐指数
1
解决办法
6234
查看次数

标签 统计

caml ×2

sharepoint ×2

c# ×1

sharepoint-2010 ×1

spquery ×1