建立專案或資料夾

建立列表項

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); // only needed to retrieve info from newly created item
    clientContext.executeQueryAsync(function(){
        var itemId = newItem.get_item("ID");
        alert("Item #"+itemId+" Created Successfully!");
    },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);
// ...

要提交更改,請呼叫通過其訪問庫的 ClientContext 物件的 executeQueryAsync 方法。

下面的完整示例建立一個資料夾,其名稱基於當前時間戳,然後在模式對話方塊中開啟該資料夾。

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(); // Note: use a list's root folder to determine its server relative 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+") Created Successfully!", 
                url: rootFolder.get_serverRelativeUrl() + "/" + name
            }
        ); 
    },function(sender,args){alert(args.get_message());});
}