使用javascript和REST从某些字段获取Sharepoint 2013列出项目数据

时间:2013-08-09 19:05:35

标签: javascript json rest sharepoint-2013

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

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

EDITED包含$ expand以在一个REST响应中获取Field和Item信息:

已编辑以包含我目前用于创建选项的循环。我将所有数据存储在Value中,用?分隔,并在选中时将数据拆分为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字段中显示数据。每个项目结果实际上还有大约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返回'undefined'

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

0 个答案:

没有答案