【发布时间】:2015-08-12 14:49:32
【问题描述】:
我遇到了一个小问题。我正在使用 REST/JS 来填充下拉框,这需要首先查找列表中的列。
//Product Model Cascade
document.getElementById("productDD").onchange = function() {
var prod = this.options[document.getElementById("productDD").selectedIndex].text;
var select = document.getElementById("productModelDD");
$(select).empty();
var call2 = $.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists(guid'bb392616-24ee-47e2-9365-f17400348373')/Items", //the list
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
call2.done(function(data, textStatus, jqXHR) {
var select = document.getElementById("productModellDD");
for (index in data.d.results) {
var parent = data.d.results[index].AT_ARMATECproducts; //Lookup column
console.log("parent var: " + parent);
if (parent == prod) {
var op = document.createElement("option");
op.text = data.d.results[index].Title;
op.value = data.d.results[index].Title;
select.appendChild(op);
}
}
});
}
但父值返回为“未定义”,我已经三次检查这是正确的列表。我也尝试过 .get_LookupValue() 但它回来了,因为无法从未定义的字段中获取它。 那么如何通过rest获取查找字段的值呢?
编辑:
我已经在 REST 查询中完成了选择/扩展,但出现了 400 bad request 错误:
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists(guid'bb392616-24ee-47e2-9365-f17400348373')/items?$select=Title,AT_ARMATECproducts/Title&$expand=AT_ARMATECproducts/Title",
其中 AT_ARMATECproducts 是 ARMATEC 产品型号列表中的查找字段。 AT_ARMATECproducts 是对获取标题的 ARMATEC 产品列表的查找。
因此,由于某种原因,查找列表使用了不同的名称,它显示为 AT_ARMATECproducts 但实际上似乎是 AT_Products1。
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists(guid'bb392616-24ee-47e2-9365-f17400348373')/items?$select=Title,AT_Products1/Title&$expand=AT_Products1/Title",
var parent = data.d.results[index].AT_Products1;
现在返回 [object object],当我尝试 .Titles 时,它返回列表的标题而不是查找列表。当我尝试 .AT_Products1.Title 时,它返回未定义。
【问题讨论】:
标签: javascript rest sharepoint sharepoint-2013