Javascript 在动态生成项目时(使用NAPA),将多个列表项目添加到列表中
我正在使用下面的代码在列表中插入一个项目Javascript 在动态生成项目时(使用NAPA),将多个列表项目添加到列表中,javascript,sharepoint,sharepoint-2013,Javascript,Sharepoint,Sharepoint 2013,我正在使用下面的代码在列表中插入一个项目 function createitem() { var selectListBox = document.getElementById("txtFormName"); var selectedListTitle = selectListBox.value; var selectedList = web.get_lists().getByTitle(selectedListTitle); var listI
function createitem() {
var selectListBox = document.getElementById("txtFormName");
var selectedListTitle = selectListBox.value;
var selectedList = web.get_lists().getByTitle(selectedListTitle);
var listItemCreationInfo = new SP.ListItemCreationInformation();
var newItem = selectedList.addItem(listItemCreationInfo);
newItem.set_item('Title','abc');
newItem.update();
context.load(newItem);
context.executeQueryAsync(onItemCreationSuccess, onItemCreationFail);
}
工作正常。现在我想用
newItem.set_item('Title1','def');
newItem.set_item('Title2','xyz');
.
.
.
and so on
同一行中要插入的多个项的循环中。我怎样才能做到这一点。请指导。由于SharePoint CSOM API支持以下示例,因此演示如何使用对服务器的单个请求创建多个列表项:
function createListItem(context,listTitle,itemProperties)
{
var web = context.get_web();
var list = web.get_lists().getByTitle(listTitle);
var itemCreateInfo = new SP.ListItemCreationInformation();
var listItem = list.addItem(itemCreateInfo);
for(var propName in itemProperties) {
listItem.set_item(propName, itemProperties[propName])
}
listItem.update();
return listItem;
}
//Usage
var contactItems = [];
var context = new SP.ClientContext.get_current();
var contactProperties = {'Title': 'Doe','FirstName': 'John'};
//1.Prepare multiple list items
for(var i = 0; i < 16; i++) {
var contactItem = createListItem(context,'Contacts',contactProperties);
contactItems.push(contactItem);
}
//2. Submit request to the server to create list items
context.executeQueryAsync(
function() {
console.log(contactItems.length + ' contacts have been created');
},
function(sender, args) {
console.log(args.get_message());
}
);
函数createListItem(上下文、listTitle、itemProperties)
{
var web=context.get_web();
var list=web.get_list().getByTitle(listTitle);
var itemCreateInfo=new SP.ListItemCreationInformation();
var listItem=list.addItem(itemCreateInfo);
for(itemProperties中的变量propName){
listItem.set_项(propName,itemProperties[propName])
}
update();
返回列表项;
}
//用法
var contactItems=[];
var context=new SP.ClientContext.get_current();
var contactProperties={'Title':'Doe','FirstName':'John'};
//1.准备多个列表项
对于(变量i=0;i<16;i++){
var contactItem=createListItem(上下文,'Contacts',contactProperties);
contactItems.推送(contactItem);
}
//2. 向服务器提交创建列表项的请求
context.executeQueryAsync(
函数(){
console.log(contactItems.length+“已创建联系人”);
},
函数(发送方,参数){
console.log(args.get_message());
}
);
要点:
- 列表项创建操作在一次提交中提交到服务器 使用SP.ClientContext.executeQueryAsync方法请求