我有一个列表,我存储图像URL,我正在尝试读取项目列表并在页面上显示图像。为此,我写了下面的脚本......
<script type="text/javascript">
function ViewItem()
{
var myQueryString = '<Query><Where><Eq><FieldRef Name="Anchor" /><Value
Type="Boolean">1</Value></Eq></Where></Query>';
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle('AnchorImageList');
var myquery = new SP.CamlQuery();
myquery.set_viewXml(myQueryString);
myItems = list.getItems(myquery);
context.load(myItems, 'Include(Title,ImageURL)');
context.executeQueryAsync(Function.createDelegate(this, this.success),
Function.createDelegate(this, this.failed));
}
function success()
{
var LinkURL= "";
var ImageURL="";
var ListEnumerator = this.myItems.getEnumerator();
while(ListEnumerator.moveNext())
{
var currentItem = ListEnumerator.get_current();
LinkURL = currentItem.get_item('Title') ;
ImageURL= currentItem.get_item('ImageURL');
document.write('<img src="' + ImageURL+ '"+>');
alert(LinkURL);
}
}
function failed(sender, args)
{
alert("failed. Message:" + args.get_message());
}
</script>
<a href="#" onclick="Javascript:ViewItem();">View Items</a>
在我的CAML查询中,我试图过滤标记为“Anchor?”的项目(是/否列)。
但即使我标记了几个不显示的项目,我也看到了所有结果。我在这做错了什么。请有人帮助我。此外,在页面上加载图像后,页面仍然显示轮子,就像处理某些内容一样。我需要为此做些什么吗?
答案 0 :(得分:3)
试试这个:
<View>
<Query>
<Where>
<Eq>
<FieldRef Name="Anchor" />
<Value Type="Boolean">1</Value>
</Eq>
</Where>
</Query>
</View>
如果它不适合您,请按照以下步骤操作:
希望这会有所帮助。
答案 1 :(得分:1)
从Query
中存储的CAML查询中删除myQueryString
标记。运行查询时会隐式添加标记。
之前它也让我绊倒了。关于它的阴险的是,查询不会彻底失败;有时候它会起作用,有时却不起作用,这使得调试变得很麻烦。
答案 2 :(得分:0)
我发现如果你在CAML查询中只使用单引号就行了。由于某种原因,混合双引号和单引号会查询查询。希望有所帮助。