Buenos Días,
Cree un javascript para traer unas imágenes de una lista, inicialmente no me funcionaba incluso utilizando document(ready) y registrando el script con _spBodyOnLoadFunctionNames.push ("myCustomFunctionName"), me aparecía objetos null, despues de intentar agregue un delay a la función y me funciono el script.
Mi idea es poner el script en varias webpart dentro de lo misma página y cambiar el filtro según la inicial de la imagen "A","B".., para lo cual cambio en mi script el id de la tabla según la letra y el append.
Cuando inserto el script en las 2 webpartde contenido (A,B), se ejecuta 2 veces el query per me pone siempre las imágenes en la misma tabla debajo de la segunda webpart.
Revise que el id de las tablas cambiara en cada webpart con el editor de codigo del explorador y esta bien.
el codigo que estoy usando es:
<script language="javascript" type="text/javascript"> var siteUrl = '/SiteDirectory/fabricantes/'; var web = ''; var listItemInfo = ''; retrieveListItems(); function retrieveListItems() { setTimeout(function () { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Solicitud de Marca'); var camlQuery = new SP.CamlQuery(); camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name=\'Activa\' /><Value Type=\'Boolean\'>1</Value></Eq></Where><OrderBy><FieldRef Name=\'Title\'/></OrderBy></Query><RowLimit>100</RowLimit></View>'); this.collListItem = oList.getItems(camlQuery); clientContext.load(collListItem); clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); },3000) } function onQuerySucceeded(sender, args) { var code=''; var cont=0; var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); listItemInfo = oListItem.get_item('Marca_x003a__x0020_Image'); var img= "https://repositorio/Images/marca/" + listItemInfo.toString(); var url= oListItem.get_item('url'); if(cont==0) { code += "<tr>" ; } if(cont == 5) { code += "</tr>"; cont=0; } if(url!=null) { code+='<td><a href='+url+'><img src='+img+' alt="" style="margin: 5px"/></a></td>' cont=cont+1; } } code+="</tr>" $(code).appendTo("#b");/* este id lo cambio en cada webpart*/ } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }</script><p> </p><table _moz_resizing="true"><tbody id="b">/* este id lo cambio en cada webpart*/</tbody></table>
No se cual pueda ser el problema. Les agradezco cualquier ayuda o suguerencia.
Gracias.
Alvaro Contreras