【问题标题】:How can I write a SPQuery to filter items based on a LinkFieldValue?如何编写 SPQuery 来根据 LinkFieldValue 过滤项目?
【发布时间】:2010-07-12 07:32:41
【问题描述】:

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

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

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

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

这会产生以下查询文本:

<Where><Eq><FieldRef Name="PollInstancePoll" />
<Value Type="Text"><a href="/az/Lists/Polls/DispForm.aspx?ID=1">example poll</a></Value>
</Eq></Where>

【问题讨论】:

    标签: sharepoint spquery linkfieldvalue


    【解决方案1】:

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

    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。

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      相关资源
      最近更新 更多