2012-10-02 11 views
5

Tengo una lista donde estoy almacenando las URL de imagen y estoy tratando de leer la lista de elementos y mostrar las imágenes en la página. Para que escribí el guión algo parecido a continuación ....Lectura de los elementos de la lista Modelo de objeto de cliente 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> 

En mi consulta CAML que estoy tratando de filtrar los elementos que están etiquetados para sí "ancla?" (Sí/no de la columna).

Pero estoy viendo todos los resultados aunque etiqueté algunos elementos para no mostrar. Lo que estoy haciendo mal aquí. Por favor alguien me ayude Además, después de cargar las imágenes en la página, la página sigue mostrando la rueda como si estuviera procesando algo. ¿Tengo que hacer algo por esto?

+1

+1 buena pregunta/muestra razonable. Nota al margen sobre la calidad de la pregunta: no es necesario agregar notas de agradecimiento (voto arriba/aceptar/comentar en su lugar) y la firma ya que rara vez agrega valor a la publicación. –

+1

revise su consulta de Caml usando U2U Caml Builder –

+1

Escribí la consulta usando el constructor de u2u solamente y la consulta arroja los resultados adecuados cuando la ejecuto allí. No estoy seguro de por qué la misma consulta no funciona desde el Modelo de objetos cliente. – user346514

Respuesta

1

Quite las etiquetas Query de la consulta CAML almacenada en myQueryString. Las etiquetas se agregan implícitamente cuando se ejecuta la consulta.

Me ha tropezado antes, también. Lo insidioso es que la consulta nunca fallará rotundamente; a veces funciona, a veces no funciona, por lo que es un dolor depurar.

+0

Gracias CBono. Probé de diferentes maneras y realmente no funcionó. Estoy usando Dataview webpart ahora. Hasta ahora me dio el resultado que quería. Lo expandiré para obtener los resultados más deseados. – user346514

3

prueba este:

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

en el caso si no funciona para usted, siga los siguientes pasos:

  1. Crear una vista de lista utilizando la funcionalidad estándar.
  2. Ábralo en SharePoint Designier y simplemente copie la consulta CAML del código.

Espero que esto ayude.

0

Descubrí que si utiliza solo comillas simples en su consulta CAML funcionará. Mezclar comillas dobles e individuales aumenta la consulta por algún motivo. Espero que ayude.

Cuestiones relacionadas