另一个GetListItems函数中的SPServices GetListItems函数

时间:2018-12-11 17:47:39

标签: javascript jquery sharepoint spservices

我正在一个项目中,该项目在同一个SharePoint网站中涉及两个单独的列表。我已经在SPServices中使用GetListItems函数从列表A中检索列表项,并将特定字段中的值插入到HTML字符串中以显示在页面上。

我还有第二个列表,列表B,我也希望能够使用GetList Items进行查询,但要基于第一个查询的结果。

列表B包含一个基于列表B的ID列的查找列。因此两者应共享一个公共数据点。我想做的是能够单击从列表A返回的项之一-并基于查找列查看列表B中与其相关的项。

我知道这可能是Java问题,而不是SPServices问题,但是鉴于GetListItems函数的特定用法,我不确定从哪里开始。谁能给我任何有关如何实现这一目标的见识?

谢谢。

1 个答案:

答案 0 :(得分:0)

以下代码使用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>