首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写基于LinkFieldValue过滤项目的SPQuery?

如何编写基于LinkFieldValue过滤项目的SPQuery?
EN

Stack Overflow用户
提问于 2010-07-12 15:32:42
回答 1查看 1.8K关注 0票数 0

我需要根据字段值从SharePoint列表中选择一个值。该字段的类型为LinkFieldValue。我应该如何编写CAML查询?

当我使用空查询选择项时,我会按预期收到列表中的所有项。

当我向查询添加约束时,它返回一个空结果。我尝试按如下方式构造查询:

代码语言:javascript
复制
string.Format("<Where><Eq><FieldRef Name=\"PollInstancePoll\" /><Value "
+"Type=\"Text\">{0}</Value></Eq></Where>",
new LinkFieldValue { NavigateUrl = "/az/Lists/Polls/DispForm.aspx?ID=1",
Text = "example poll" });

这将导致以下查询文本:

代码语言:javascript
复制
<Where><Eq><FieldRef Name="PollInstancePoll" />
<Value Type="Text"><a href="/az/Lists/Polls/DispForm.aspx?ID=1">example poll</a></Value>
</Eq></Where>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-12 17:28:31

我已经用以下查询解决了我的问题:

代码语言:javascript
复制
new SPQuery
{
    Query =
        CAML.Where(
            CAML.And(
                CAML.Contains(
                    CAML.FieldRef("PollInstancePoll"),
                    CAML.Value(pollPath)),
                CAML.Contains(
                    CAML.FieldRef("PollInstancePage"),
                    CAML.Value(pagePath))))
};

本质上,我只检查链接字段的URL部分,并以Type="Text"的形式提供比较的值。重要的是要记住,SharePoint始终将数据库中的值存储为服务器相关的URL。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3226590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档