SP.SOD.executeOrDelayUntilScriptLoaded(createItem,"sp.js"); function createItem(){ var clientContext = new SP.ClientContext(); var list = clientContext.get_web().get_lists().getByTitle("List Title"); var newItem = list.addItem(); newItem.set_item("Title","Example Title"); newItem.update(); clientContext.load(newItem); // 只需要从新创建的项目中检索信息 clientContext.executeQueryAsync(function(){ var itemId = newItem.get_item("ID"); alert("Item #"+itemId+" 创建成功!"); },function(sender,args){ alert(args.get_message()); }); }
上面的示例演示了通过执行以下操作创建列表项:
调用addItem列表对象的方法以获取项目对象
调用set_item结果列表项对象上的方法以根据需要设置每个字段值
调用update列表项对象上的方法以指示要提交的更改
调用executeQueryAsync客户端上下文对象的方法以执行排队的指令
请注意,你不会需要新的项目对象传递给客户端上下文的load方法来创建项目。仅当您希望从服务器检索项目的任何字段值时,才需要执行该步骤。
创建文件夹类似于将项目添加到列表。不同之处在于,必须首先创建一个ListItemCreationInformation对象并将其underlyingObjectType属性设置为SP.FileSystemObjectType.folder,并将其leafName属性设置为新文件夹的所需名称。
然后将该对象作为参数传递addItem给库中的方法以创建文件夹。
// ... var itemCreateInfo = new SP.ListItemCreationInformation(); itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder); itemCreateInfo.set_leafName(folderName); var newItem = list.addItem(itemCreateInfo); // ...
要提交更改,请调用通过其访问库executeQueryAsync的ClientContext对象的方法。
下面的完整示例创建一个具有基于当前时间戳的名称的文件夹,然后在模式对话框中打开该文件夹。
SP.SOD.executeOrDelayUntilScriptLoaded(createFolder,"sp.js"); function createFolder(){ var now = new Date(); var timeStamp = now.getYear() + "-" + (now.getMonth()+1) + "-" + now.getDate() + "T" + now.getHours()+"_"+now.getMinutes()+" "+now.getSeconds()+"_"+now.getMilliseconds(); var clientContext = new SP.ClientContext(); var list = clientContext.get_web().get_lists().getByTitle("Library Title"); var itemCreateInfo = new SP.ListItemCreationInformation(); itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder); itemCreateInfo.set_leafName(timeStamp); var newItem = list.addItem(itemCreateInfo); newItem.update(); clientContext.load(newItem); var rootFolder = list.get_rootFolder(); // 注意:使用列表的根文件夹确定其服务器相对URL clientContext.load(rootFolder); clientContext.executeQueryAsync(function(){ var itemId = newItem.get_item("ID"); var name = newItem.get_item("FileLeafRef"); SP.UI.ModalDialog.showModalDialog( { title: "Folder \""+name+"\" (#"+itemId+") 创建成功!", url: rootFolder.get_serverRelativeUrl() + "/" + name } ); },function(sender,args){alert(args.get_message());}); }