javascript - Sharepoint 2013 添加查找值到另一个列表 Javascript 列表

标签 javascript sharepoint csom

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

function createListItem(var lookup_Value) {

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', lookup_Value);  // 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());
}

问题是,当我尝试运行此代码时,我收到一个错误“您尝试更新的字段可能是只读的”,我需要从查找列表中获取 ID 而不是查找值,有没有办法只用查找值从列表中获取ID?

最佳答案

解决方案可能是从查找表中获取所有值(在本例中为 allItems),并将它们与所需的 valuecomparisonItemName() 进行比较,从而获取 id。如果查找表很小,这不会花很长时间。

 var lookupVar = new SP.FieldLookupValue();    
  for (var i = 0; i < allItems.length; i++) {
        if (allItems[i].get_item("ItemName") == comparisonItemName) {
            lookupVar.set_lookupId(allItems[i].get_id());
        }
    }

设置项目值时使用lookupVar。

附注为了获取准确的项目,请编写 CAML 来获取所需的项目,然后获取 Id。

关于javascript - Sharepoint 2013 添加查找值到另一个列表 Javascript 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635445/

相关文章:

javascript - AJAX、JQuery、JQuery UI、样式表、自定义 JS——未全部加载

javascript - 单击时切换输入可见性

javascript - aws-sdk putObject 访问被拒绝 Request.extractError

SharePoint - 数字字段是什么类型

azure - 使用经过身份验证的 Azure AD 用户对 CSOM 进行身份验证

sharepoint - 如何使用 CSOM 检索特定类型的站点?

sharepoint 2013 更改 CSOM 中现有的发布页面页面布局

javascript - Webdriver.io 比较运算符

javascript - Page_Load 期间更改的值不会显示

c# - 识别请求是否来自本地网络(内联网)