1. 程式人生 > >SharePoint JS API 文件庫操作

SharePoint JS API 文件庫操作

環境:Windows Server 2012,SharePoint 2013

客戶端物件操作文件庫,先介紹怎麼讀取指定資料夾下的文件:
讀取文件庫Documents下的資料夾A裡面的檔案,地址如下,/oa/TestWeb/Lists/Documents 是文件庫的路徑,/Test/A 是資料夾路徑

/oa/TestWeb/Lists/Documents/Test/A

讀取文件庫指定目錄下的檔案,程式碼如下:

function GetDataByFolder() {
    try {
        var clientContext = new SP.ClientContext();
        var targetList = clientContext.get_web().get_lists().getByTitle("文件庫"
); var query = new SP.CamlQuery(); //把要讀取的資料夾路徑寫入查詢物件CamlQuery query.set_folderServerRelativeUrl("/oa/TestWeb/Lists/Documents/Test/A"); //如果有必要的話,加上查詢條件 query.set_viewXml("<View><ViewFields><FieldRef Name='ID'/><FieldRef Name='AAA'/><FieldRef Name='BBB'/><FieldRef Name='CCC'/></ViewFields><Query><OrderBy><FieldRef Name='OrderBy' Ascending='FALSE'/></OrderBy></Query></View>"
); var listItems = targetList.getItems(query); clientContext.load(listItems); clientContext.executeQueryAsync(Function.createDelegate(this, function () { var listEnumerator = listItems.getEnumerator(); var Array = []; while (listEnumerator.moveNext()) { var
item = listEnumerator.get_current(); Array.push(new objData(item.get_id(), item.get_item('AAA'), item.get_item('BBB'), item.get_item('CCC'))); } }), Function.createDelegate(this, function (sender, args) { })); } catch (ex) { } }

主要就是這個函式,把資料夾路徑寫入查詢物件

query.set_folderServerRelativeUrl("/oa/TestWeb/Lists/Documents/Test/A");

儲存資料,這個沒什麼好說的

function validtionData() {
    var context = new SP.ClientContext.get_current();
    var web = context.get_web();
    var list = web.get_lists().getByTitle('文件庫');
    $("#repeaterListTable tbody tr").each(function () {
        var i = $(this).attr("i");
        var itemID = $("#hidItemID" + i).val();
        var orderBy = $("#txtCCC" + i).val();

        if ($(this).find("input[name=subBox]")[0].checked && !isNaN(itemID) && !isNaN(orderBy)) {

            var product = list.getItemById(parseInt(itemID));
            product.set_item('CCC', orderBy);
            product.update();


        }
    });
    context.executeQueryAsync(Function.createDelegate(this, function () {
        alert('提交成功.');
        location.reload();
    }),
                                      Function.createDelegate(this, function (sender, args) {
                                          alert('failed. Message:' + args.get_message());
                                      }));
}