Sharepoint 如何编写SPQuery以根据LinkFieldValue筛选项目?
我需要根据字段值从SharePoint列表中选择一个值。字段的类型为LinkFieldValue。我应该如何编写CAML查询 当我选择带有空查询的项目时,我将按预期接收列表中的所有项目 当我向查询添加约束时,它返回一个空结果。我已尝试按如下方式构造查询:Sharepoint 如何编写SPQuery以根据LinkFieldValue筛选项目?,sharepoint,spquery,linkfieldvalue,Sharepoint,Spquery,Linkfieldvalue,我需要根据字段值从SharePoint列表中选择一个值。字段的类型为LinkFieldValue。我应该如何编写CAML查询 当我选择带有空查询的项目时,我将按预期接收列表中的所有项目 当我向查询添加约束时,它返回一个空结果。我已尝试按如下方式构造查询: string.Format("<Where><Eq><FieldRef Name=\"PollInstancePoll\" /><Value " +"Type=\"Text\">{0}</V
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" });
string.Format({0}),
新LinkFieldValue{NavigateUrl=“/az/Lists/Polls/DispForm.aspx?ID=1”,
Text=“示例轮询”});
这将生成以下查询文本:
<Where><Eq><FieldRef Name="PollInstancePoll" />
<Value Type="Text"><a href="/az/Lists/Polls/DispForm.aspx?ID=1">example poll</a></Value>
</Eq></Where>
我已通过以下查询解决了问题:
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