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());
    });
}

上面的示例演示了通过执行以下操作创建列表项:

  1. 调用addItem列表对象的方法以获取项目对象

  2. 调用set_item结果列表项对象上的方法以根据需要设置每个字段值

  3. 调用update列表项对象上的方法以指示要提交的更改

  4. 调用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());});
}