Функция SPServices GetListItems в другой функции GetListItems - PullRequest
0 голосов
/ 11 декабря 2018

Я работаю над проектом, который включает два отдельных списка на одном сайте SharePoint.Я использовал функцию GetListItems в SPServices для извлечения элементов списка из списка A и вставки значений из определенных полей в строку HTML для отображения на странице.

У меня есть второй список, Список B, который я также хочу запрашивать, используя элементы GetList, но основываясь на результатах первого запроса.

Список B содержит столбец поиска, основанный на столбце идентификатора Списка B. Таким образом, эти два элемента должны совместно использовать общую точку данных.Что я хочу сделать, так это иметь возможность щелкнуть один из элементов, возвращаемых из списка A, и просмотреть элементы из списка B, которые относятся к нему, на основе столбца поиска.

Я понимаю, что это может быть скорее вопросом Javascript, чем вопросом SPServices, но я не был уверен, с чего начать, учитывая конкретное использование функции GetListItems.Кто-нибудь может дать мне какое-либо представление о том, как я мог бы достичь этого?

Спасибо.

1 Ответ

0 голосов
/ 12 декабря 2018

Следующий код использует SPPlus , чтобы упростить жизнь:

Цель: получить элементы из списка A, а затем выяснить, для каждого элемента в списке A, сколько существует в списке Bс таким же названием.

<head>
<script src="https://cdn.jsdelivr.net/npm/sharepointplus@5.1.0/sharepointplus-5.1.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script>

    $(document).ready(function () {
        ExecuteOrDelayUntilScriptLoaded(onLoad(listA, listB), "sp.js");
    });

    function onLoad(listA, listB) {

        $SP().list(listA).get({
            fields: "Title",
        }).then(function (response) {
            var obj = {};
            var dataA = response;
            dataA.forEach(rowA => {
                let titleFromListA = rowA.getAttribute("Title");
                $SP().list(listB).get({
                    fields: "Title",
                    where: "Title='" + titleFromListA + "'"
                }).then(function (response) {
                    let dataB = response;
                    let countofResultFromB = dataB.length;
                    obj[titleFromListA] = countofResultFromB;
                })
            });
            console.log(obj)
        })
    }
</script> </head>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...