1

我正在尝试从某个列表中的某些列(字段)中获取列表项数据。

据我了解,我需要要从中提取列表数据的字段的 InternalName。

已编辑以包含 $expand 以在一个 REST 响应中同时获取字段和项目信息:

已编辑以包含我当前用于创建选项的循环。我将所有数据存储在值中,用?分隔并在选择时将数据拆分到 HTML 表中。

function execCrossDomainRequest() { 
    var executor; 

    executor = new SP.RequestExecutor(appweburl);
    executor.executeAsync( 
        { 
            url: appweburl + 
                "/_api/SP.AppContextSite(@target)/web/lists/getByTitle('Weights%20and%20Thickness')" +
                "?$select=Fields,Items&$expand=Fields,Items&@target='" + 
                hostweburl + "'", 
            method: "GET", 
            headers: { "Accept": "application/json; odata=verbose" }, 
            success: onDataReturned, 
            error: onError 
        } 
    ); 
} 

function onDataReturned(data) { 
    var jsonObject = JSON.parse(data.body); 
    var resultsFields = jsonObject.d.Fields.results;
    var resultsItems = jsonObject.d.Items.results;
    var calculateHTML = '';

for (var i = 0; i < results.length; i++) {
     calculateHTML = calculateHTML + 
        "<option value='" + results[i].mvof + "?" + results[i].oc4d + "?" + results[i].ngot + "?" + 
        results[i].iv4s + "?" + results[i].j6i7 + "?" + results[i].OData__x006c_yg2 + "?" + 
        results[i].OData__x006f_po9 + "'>" + 
        results[i].Title + 
        "</option>"; 
} 
    document.getElementById("selectPieceDropdown").innerHTML = calculateHTML;
} 

我只想显示 Items 结果的 movf、oc4d、ngot、iv4s 和 j6i7 字段中的数据。每个 Items 结果实际上还有大约 20 个字段,但为简洁起见,我删除了它们。我的 JSON 响应:

{
    d: {
        __metadata: {...}-
        Fields: {
            results: [64]
            0:  {...}-
            1:  {...}-
            2:  {...}-
            3:  {...}-
            4:  {...}-
            5:  {...}-
            6:  {...}-
            7:  {
                __metadata: {...}-
                InternalName: "mvof"
                StaticName: "mvof"
                Title: "Thickness"
            }
        }
        Items: {
            results: [32]
            0:  {
                Title: "#10 - Regular"
                mvof: 0.178
                oc4d: 1.96
                ngot: null
                iv4s: null
                j6i7: null
                OData__x006c_yg2: null
                OData__x006f_po9: null
            }
        }
    }
}

如何获取字段的 InternalName,然后从 Items 结果中访问该字段数据?我试过: var internalThickness = resultsFields[7].InternalName; 然后尝试使用它: resultsItems.internalThickness返回'未定义'

谢谢,我已经从这里的回复和文档链接中学到了很多东西。我只是在拼凑这个时遇到了麻烦。

4

0 回答 0