none
Sharepoint App - как работать с файлами в папках RRS feed

  • Общие обсуждения

  • Добрый день!

    Имеем Sharepoint Online 2013.

    Стоит задача:
    Есть список TestGallery2 (Библиотека рисунков). В ней созданы папки - каждая папка это как бы фотоальбом. Внутри папок соотв-но фотографии. Необходимо на сайте: вывести список альбомов (в соответствии с названиями папок), и при клике на какое либо название - отобразить фотографии из этого альбома.

    Я смог справиться с задачей построения списка альбомов, а так же получением имени папки при клике на альбом. Но я не могу разобраться с тем, как выдёргивать файлы из папок, и как вообще с ними работать. Вот мой текущий код:
    'use strict';
    
    
    var web;
    var hostweburl;
    var appweburl;
    var a_id;
    
       // This code runs when the DOM is ready and creates a context object which is
    // needed to use the SharePoint object model
    
    $(document).ready(function () {   
        hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
        appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl'));
    
        var scriptbase = hostweburl + '/_layouts/15/';   
    
        $.getScript(scriptbase + 'SP.Runtime.js',
            function () {
                $.getScript(scriptbase + 'SP.js',
                    function () {
                        $.getScript(scriptbase + 'SP.RequestExecutor.js', printListGallery);                    
                    }
                );
            }
        );
    });
    
    function getQueryStringParameter(param) {
        var params = document.URL.split("?")[1].split("&");
        var strParams = "";
    
        for (var i = 0; i < params.length; i = i + 1) {
            var singleParam = params[i].split("=");
            if (singleParam[0] == param) {
                return singleParam[1];
            }
        }
    }
    
    
    function printListGallery() {       
        var context;
        var factory;
        var appContextSite;
        var collList;
    
        context = new SP.ClientContext(appweburl);
        factory = new SP.ProxyWebRequestExecutorFactory(appweburl);
        context.set_webRequestExecutorFactory(factory);
        appContextSite = new SP.AppContextSite(context, hostweburl);
    
        this.web = appContextSite.get_web();
        collList = this.web.get_lists();
        context.load(collList);
    
        var listItemCollection;
        var selectedList = "TestGallery2";
        var selectedListTitle = collList.getByTitle(selectedList);
        var camlQuery = new SP.CamlQuery();
    
        camlQuery.set_viewXml("<View><ViewFields>" +
                                "<FieldRef Name='Title' />" +
                                "<FieldRef Name='Created' />" +
                                "<FieldRef Name='Test' />" +
                            "</ViewFields></View>')");
        listItemCollection = selectedListTitle.getItems(camlQuery);
    
        context.load(listItemCollection, "Include(Title, Created, Test)");
    
        context.executeQueryAsync(
                        Function.createDelegate(this, onGetItemsSuccess),
                        Function.createDelegate(this, onGetItemsFail)
    
        );    
    
        function onGetItemsSuccess() {
            var listInfo = '';
            var listItemEnumerator = listItemCollection.getEnumerator();
    
            while (listItemEnumerator.moveNext()) {
                listInfo += '<li><a href="#" class="click" id="' + listItemEnumerator.get_current().get_item('Title') + '">' + listItemEnumerator.get_current().get_item('Title') + '</a> | ' + listItemEnumerator.get_current().get_item('Created') + '</li>';
            }
    
            document.getElementById("message").innerHTML = '<ul>' + listInfo + '</ul>';
        }
    
        function onGetItemsFail(sender, args) {        
            alert('failed to get items. Error:' + args.get_message());
        }
    
        $("a.click").live("click", function () {
            a_id = $(this).attr('id');
            ViewAllFiles(a_id);
        });
    
        function ViewAllFiles(folder) {
            document.getElementById("message2").innerHTML = folder;
        }
    }

    Функцию ViewAllFiles оставил пустой, дабы не смущать вас своими бреднями. Суть моего вопроса: помогите научиться выдирать URLы фотографий в папках, или хотя бы получать имена файлов, зная имя папки. Или приведи пример как обратится к элементу списка, если этот элемент - файл.
    20 сентября 2013 г. 12:45

Все ответы

  • Тема перенесена на MSDN.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    23 сентября 2013 г. 7:14
    Модератор