我正在尝试从某个列表中的某些列(字段)获取列表项数据。
根据我的理解,我需要从中提取列表数据的字段的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'
谢谢,我已经从这里的回复和文档链接中学到了很多东西。我只是拼凑了这个。