заполнить выпадающий список из списка Sharepoint - PullRequest
2 голосов
/ 02 февраля 2011

Я пытаюсь динамически заполнить раскрывающийся список на основе информации в списке Sharepoint.Я знаю, что могу добавить список на страницу и скрыть его, но я хочу, чтобы список заполнялся с использованием языка сценариев клиента, а список не существовал на текущей странице.Я предполагаю подход ajx, но не знаю, как этого добиться.Я ограничен в отсутствии SP Designer или Visual Studio.Таким образом, это может быть достигнуто с помощью веб-части или простого редактора контента с кодом клиентского сценария / ajax.Если так, то как?

Ответы [ 4 ]

2 голосов
/ 07 февраля 2011
1 голос
/ 02 февраля 2011

Можете ли вы попробовать библиотеку SPServices на 2007 год?

1 голос
/ 02 февраля 2011

Взгляните на Настройки ленты - раскрывающиеся элементы управления, клиентская объектная модель и компоненты страницы JavaScript . Большая часть кода предназначена для ленты, но loadCurrentWebLists и getDropdownItemsXml демонстрируют, что вы пытаетесь сделать. Вы также можете взглянуть на SharePoint 2010: использование ECMAScript для манипулирования (добавления / удаления / обновления / получения) элементов списка и модели OM Javascript . Они касаются элементов списка, но вы должны иметь возможность адаптировать их для списков.

0 голосов
/ 15 марта 2011

Вот как я использую его для списка информации о пользователях, который представляет собой список всех пользователей с разрешениями на этот сайт.select: function(e, ui){} - это функция, которая вызывается при выборе чего-либо из поля автозаполнения.

<link href="../css/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.js"></script>
<script type="text/javascript" src="../js/jquery.SPServices-0.5.8.js"></script>

<script type="text/javascript">
$(document).ready (function() {
    $().SPServices({
        operation: "GetListItems",
        async: true,
        listName: "User Information List",
        CAMLViewFields: "<ViewFields>" +
            "<FieldRef Name='Title' />" +
            "<FieldRef Name='MobilePhone' />" +
            "<FieldRef Name='Picture' />" +
            "<FieldRef Name='SPSResponsibility' />" +
            "<FieldRef Name='Name' />" +
            "</ViewFields>",
        completefunc: AttachMembersAutoComplete
    });
});

function AttachMembersAutoComplete(xmlResponse) {
    var domElementArray = $( "[nodeName=z:row]", xmlResponse.responseXML );

    var dataMap = domElementArray.map(function() {
        return {
            value: $(this).attr('ows_Title'),
            mobile: $(this).attr('ows_MobilePhone'),
            picture: $(this).attr('ows_Picture'),
            askmeabout: $(this).attr('ows_SPSResponsibility'),
            name: $(this).attr('ows_Name')
        };
    });

    var data = dataMap.get();

    $("input#inputMembersAutoComplete").autocomplete({
        source: data,
        select: function(e, ui){

            window.alert(ui.item['askmeabout'] + "\n" + ui.item['name']);

            if(ui.item['picture'] != undefined) {
                var tmpPicture = ui.item['picture'];
                var commaIndex = tmpPicture.indexOf(',');
                tmpPicture = tmpPicture.substr(0,commaIndex);
            }else{
                var tmpPicture = "/_layouts/images/person.gif";
            }

            var tmpHTML = "<div>";
            tmpHTML += "<a href='/Person.aspx?accountname=" + ui.item['name'] + "' >";
            tmpHTML += "<p>"+ ui.item['value'] + "  " + ui.item['mobile'] + "</p>";
            tmpHTML += "</a>";
            tmpHTML += "<img src='"+ tmpPicture + "' />";
            tmpHTML += "</div>";

            $("#person_info").html(tmpHTML);
        }
    });
}
</script>
...