sharepoint 创建项目或文件夹
示例
创建列表项
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());});
}