我需要根据字段值从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>发布于 2010-07-12 17:28:31
我已经用以下查询解决了我的问题:
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。
https://stackoverflow.com/questions/3226590
复制相似问题