为什么 GetSiteData(query) 返回错误值 [英] why GetSiteData(query) returns wrong values

查看:35
本文介绍了为什么 GetSiteData(query) 返回错误值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I do a caml query on the forms libraries in entire site collection with SPWeb.GetSiteData(SPQuery). For the field "ServerUrl" it returns just "/" instead of "/site name/library name/formName.xml". With item["ServerUrl"] is returns the right value, but i need to use the GetSiteData method.

这是我的代码:

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);

推荐答案

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

The seemingly broken ServerURL appears to be just another SharePoint web service funny. If your trying to get the full url for the file then you can build it up from the EncodedAbsUrl and FileRef fields.

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

这篇关于为什么 GetSiteData(query) 返回错误值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆