【发布时间】:2014-03-27 17:19:17
【问题描述】:
有没有办法使用 JavaScript 客户端对象模型编辑多值查找字段? 我需要删除一个或多个查找值,并最终添加一个或多个值。
我到处搜索,我阅读 MSDN 文档,...,我也看看我的桌子底下!
谢谢。
【问题讨论】:
标签: javascript sharepoint
有没有办法使用 JavaScript 客户端对象模型编辑多值查找字段? 我需要删除一个或多个查找值,并最终添加一个或多个值。
我到处搜索,我阅读 MSDN 文档,...,我也看看我的桌子底下!
谢谢。
【问题讨论】:
标签: javascript sharepoint
Multiple-Column Lookup 值表示为 SP.FieldLookupValue 对象的数组。
Lookup字段值var context = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle(listTitle);
var listItem = list.getItemById(1);
context.load(listItem);
context.executeQueryAsync(
function() {
var lookupVals = listItem.get_item(fieldName); //get multi lookup value (SP.FieldLookupValue[])
for(var i = 0;i < lookupVals.length;i++) {
console.log(lookupVals[i].get_lookupId()); //print Id
console.log(lookupVals[i].get_lookupValue()); //print Value
}
},
function(sender,args){
console.log(args.get_message());
}
);
Lookup字段值要更新多个查找值,您需要指定SP.FieldLookupValue[] 类型的值。注意,SP.FieldLookupValue 只能通过指定 LookupId 来初始化。
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle(listTitle);
var listItem = list.getItemById(1);
var lookupVals = [];
//set 1st Lookup value
var lookupVal1 = new SP.FieldLookupValue();
lookupVal1.set_lookupId(1);
lookupVals.push(lookupVal1);
//set 2nd Lookup value
var lookupVal2 = new SP.FieldLookupValue();
lookupVal2.set_lookupId(2);
lookupVals.push(lookupVal2);
listItem.set_item(fieldName,lookupVals);
listItem.update();
context.executeQueryAsync(
function() {
console.log('Multi lookup field has been updated');
},
function(sender,args){
console.log(args.get_message());
}
);
【讨论】:
你可以通过这种方式通过js获取查找值:
clientContext.executeQueryAsync(function () {
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
chartX.push(oListItem.get_item(xAxisName));
}
lookupValue1= chartX["0"].$1g_1;
lookupValue2= chartX["1"].$1g_1;
【讨论】:
$1g_1 是一个内部属性,可以使用下一版本的 SharePoint JavaScript 库进行更改