2012-10-02 13 views
5

イメージURLを保存しているリストがあり、アイテムのリストを読み込んでそのページにイメージを表示しようとしています。そのために私は、「アンカー?」(はい/いいえ列)にYESをタグ付けされたアイテムをフィルタ処理しようとしています....スクリプト私のCAMLクエリでリストアイテムを読む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> 

を以下のようなものを書きました。

しかし、表示されない項目はほとんどタグ付けされていませんが、すべての結果が表示されています。私はここで間違っています。誰か助けてください。また、イメージがページにロードされた後も、ページは何かを処理しているかのようにホイールを表示しています。私はこれのために何かする必要がありますか?

+1

+1良い質問/合理的なサンプル。質問品質に関するサイドノート:ポストに価値を与えることはめったにないので、感謝の気持ち(upvote/accept/comment)と署名を追加する必要はありません。 –

+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クエリでシングルクォーテーションを使用するとうまくいくことがわかりました。何らかの理由で二重引用符と一重引用符を混在させると、クエリがジャックアップします。希望が役立ちます。

関連する問題