【问题标题】:why GetSiteData(query) returns wrong values为什么 GetSiteData(query) 返回错误的值
【发布时间】:2013-04-16 18:37:59
【问题描述】:

我使用 SPWeb.GetSiteData(SPQuery) 对整个网站集中的表单库进行 caml 查询。对于“ServerUrl”字段,它只返回“/”而不是“/site name/library name/formName.xml”。使用 item["ServerUrl"] 返回正确的值,但我需要使用 GetSiteData 方法。

这是我的代码:

SPSiteDataQuery q = new SPSiteDataQuery();
q.Lists = "<Lists ServerTemplate='115' />";
q.Query = "<Where><And><And>"
            + "<Eq><FieldRef Name='" + UserId + "' /><Value Type='Text'>" + User + "</Value></Eq>"
            + "<Geq><FieldRef Name='Created' /><Value Type='DateTime'>" + dateFrom + "</Value></Geq></And>"
            + "<Leq><FieldRef Name='Created' /><Value Type='DateTime'>" + dateTo + "</Value></Leq></And></Where>";
q.Webs = "<Webs Scope='SiteCollection' />";
q.ViewFields =
    "<FieldRef Name='Title' />" +
    "<FieldRef Name='ID' />" +
    "<FieldRef Name='Created' />" +
    "<FieldRef ID='" + officeId + "' />" +
    "<FieldRef ID='" + formStatusId + "' />" +
    "<FieldRef ID='" + accessTypeId + "' />" +
    "<FieldRef Name='ServerUrl' />" +
    "<FieldRef Name='FileRef' />";
ret = web.GetSiteData(q);

【问题讨论】:

    标签: sharepoint caml


    【解决方案1】:

    看似损坏的 ServerURL 似乎只是另一个有趣的 SharePoint Web 服务。如果您尝试获取文件的完整 url,那么您可以从 EncodedAbsUrl 和 FileRef 字段构建它。

    http://splucy.wordpress.com/2009/06/02/retrieve-pageurl-in-spsitedataquery/

    【讨论】:

    • 我已经试过了。 FileRef 给了我与 ServerUrl 相同的信息,但 EncodedAbsUrl 只给出了域名。 :(
    猜你喜欢
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 2014-08-28
    • 2020-12-14
    • 1970-01-01
    • 2021-01-18
    相关资源
    最近更新 更多