首页 > 解决方案 > 另一个 GetListItems 函数中的 SPServices GetListItems 函数

问题描述

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

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

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

我知道这可能更像是一个 Javascript 问题而不是 SPServices 问题,但是鉴于 GetListItems 函数的具体用法,我不确定从哪里开始。谁能给我任何关于我如何实现这一目标的见解?

谢谢。

标签: javascriptjquerysharepointspservices

解决方案


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

推荐阅读