javascript
  • sharepoint
  • sharepoint-2010
  • sharepoint-api
  • 2012-10-02 119 views 5 likes 
    5

    我有一个列表,用于存储图像URL,我正尝试读取项目列表并在页面上显示图像。对于我写的剧本类似下面....读取列表项目Sharepoint 2010客户端对象模型

    <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查询我试图来筛选标记为是项“锚?”(是/否列)。

    但我看到所有的结果,即使我标记了几个项目不显示。我在这里做错了什么。请有人帮助我。此外,在图像加载到页面上之后,页面仍然显示轮子,就好像它在处理某些东西。我需要为此做点什么吗?

    +1

    +1好问题/合理样本。关于质量问题的附注:不需要添加感谢的笔记(取而代之的是接​​受/接受/评论)和签名,因为它很少增加邮件的价值。 –

    +1

    使用U2U Caml Builder检查您的caml查询 –

    +1

    我只使用u2u构建器编写查询,并且查询在我执行时返回适当的结果。我不知道为什么相同的查询不适用于客户端对象模型。 – user346514

    回答

    1

    从存储在myQueryString中的CAML查询中删除Query标签。查询运行时,隐式添加标签。

    这也让我绊倒了。关于它的阴险之处在于,查询不会彻底失败;有时它有用,有时不起作用,使调试变得很痛苦。

    +0

    谢谢CBono。我尝试了不同的方式,并没有真正解决问题。我现在使用Dataview webpart。到目前为止,它给了我想要的输出。我将扩大它以获得更多期望的结果。 – user346514

    3

    试试这个:

    <View> 
        <Query> 
        <Where> 
         <Eq> 
         <FieldRef Name="Anchor" /> 
         <Value Type="Boolean">1</Value> 
         </Eq> 
        </Where> 
        </Query> 
    </View> 
    

    的情况下,如果它不为你工作,请按照下面的步骤:

    1. 创建使用标准功能的列表视图。
    2. 在SharePoint Designier中打开它,并从代码中复制CAML查询。

    希望这会有所帮助。

    0

    我发现如果您在CAML查询中只使用单引号,它就会起作用。混合双引号和单引号使查询出于某种原因。希望有所帮助。

    相关问题