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