SharePoint 2013 Javascript使用查找字段插入项目

时间:2014-01-18 20:06:30

标签: sharepoint sharepoint-2013

我正在尝试使用Javascript在SharePoint 2013中使用以下代码添加列表项;

function createListItem() {

    var clientContext = new SP.ClientContext.get_current();

    var oList = clientContext.get_web().get_lists().getByTitle('CrewNoticesAudit');

    var itemCreateInfo = new SP.ListItemCreationInformation();
    this.oListItem = oList.addItem(itemCreateInfo);

    oListItem.set_item('Title', 'My New Item!');
    oListItem.set_item('NoticeId', 1);  // THIS IS A LOOKUP VALUE
    oListItem.set_item('User', 'administrator');
    oListItem.set_item('TimeStamp', new Date());
    oListItem.set_item('AuditType', 'Open');

    oListItem.update();

    clientContext.load(oListItem);

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {
    alert('Item created: ' + oListItem.get_id());
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

我遇到的问题是NoticeId是查看不同列表的查找值。我是否需要做一些不同的事情来设置项目的查找值?

更新:抱歉,破解了它。第二个谷歌更有成效。

如果其他人在苦苦挣扎,您需要创建一个查找字段。

    var noticeIdLookup = new SP.FieldLookupValue();
    noticeId.set_lookupId(noticeId);

2 个答案:

答案 0 :(得分:4)

正确的方法是:

var lkfieldsomthing = new SP.FieldLookupValue();

lkfieldsomthing.set_lookupId(ID_VALUE); //WHERE ID_VALUE is the unique ID 

然后在设置时可以使用

listItem.set_item("LOOKUP_COLUMN_NAME", lkfieldsomthing )

答案 1 :(得分:0)

或者,如果相关项目,则可以仅传递ID。