none
Problemas con javascript desde boton personalizado de ribbon RRS feed

  • Pregunta

  • He agregado un boton en la cinta de opciones y en el javascript que ejecuta, no es capaz de leer los datos de la lista que quiero leer.

    Este es el codigo:

    "javascript:alert('Hello World!');
                            var context = new SP.ClientContext.get_current();
                            var website = context.get_web();
                            var oList = website.get_lists().getByTitle('Prueba');
                            var items = oList.items;  
                           
                            var myItems = '';
                            var k;
                            for (k in items) {
                             myItems += items[k].id + ',';
                             };

                            alert(myItems);"

    la variable items me da vacio, como si no hubieral elementos en la lista y si los tiene.

    Saludos

    Robertc

    jueves, 14 de marzo de 2013 15:26

Respuestas

Todas las respuestas

  • Hola Robertc,

    El problema que tienes es qué estás usando mal el modelo de objetos en cliente ECMAScript ya qué te estás saltando la definición de operaciones y sobre todo el ExecuteQueryAsync(). Te dejo un ejemplo de como usarlo: http://kamilmka.wordpress.com/2011/11/10/ecmascript-client-object-model-retrieve-data-from-a-list/

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.compartimoss.com
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 14 de marzo de 2013 15:31
  • Gracias por el articulo.

    Sigo sin poder resolver el problema aqui te pongo el codigo que ejecuta el boton que agregue al ribbon de documentos de una biblioteca de documentos.

    CommandAction="javascript://alert('Hello World!');
                          this.itemsArray = new Array();
                          var ctx = new SP.ClientContext.get_current();
                          var listId = window.clipboardData.getData('Text');
                          var oList = ctx.get_web().get_lists().getById(listId);
                          //var oList = ctx.get_web().get_lists().getByTitle('Prueba');

                          var camlQuery = SP.CamlQuery.createAllItemsQuery();;
                          this.collListItem = oList.getItems(camlQuery);
                          ctx.load(collListItem);
                                                
                          clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded),Function.createDelegate(this, this.onQueryFailed));

                          function onQuerySucceeded(sender, args) {
                                var listItemInfo = '';
                                var listItemEnumerator = collListItem.getEnumerator();
            
                                while (listItemEnumerator.moveNext()) {
                                    var oListItem = listItemEnumerator.get_current();
                                    listItemInfo += '\nID: ' + oListItem.get_id() + '\nTitle: ' + oListItem.get_item('Title') + '\nBody: ' + oListItem.get_item('Body');
                                 }
                                alert(listItemInfo.toString());
                                }

                          function onQueryFailed(sender, args) {
                               alert('Request failed. ' + args.get_message() +'\n' + args.get_stackTrace());
                          }

                          "

    sábado, 16 de marzo de 2013 17:06