使用Javascript以编程方式访问sharepoint中文档集中的文件
我想访问文档库中特定文档集中的文件 到目前为止,我能够使用JSOM获得特定的文档集名称和ID,如下所示。 如何读取文档集中的所有文件使用Javascript以编程方式访问sharepoint中文档集中的文件,javascript,sharepoint,Javascript,Sharepoint,我想访问文档库中特定文档集中的文件 到目前为止,我能够使用JSOM获得特定的文档集名称和ID,如下所示。 如何读取文档集中的所有文件 ExecuteOrderLayUntilScriptLoaded(main函数,“sp.js”); 函数mainformation(){ var clientContext=new SP.clientContext.get_current(); var oList=clientContext.get_web().get_lists().getByTitle('
ExecuteOrderLayUntilScriptLoaded(main函数,“sp.js”);
函数mainformation(){
var clientContext=new SP.clientContext.get_current();
var oList=clientContext.get_web().get_lists().getByTitle('Planner Session');
var camlQuery=new SP.camlQuery();//启动查询对象
camlQuery.set_viewXml('31');
this.collListItem=oList.getItems(camlQuery);
加载(collListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this,this.onquerySucceed),
Function.createDelegate(this,this.onQueryFailed)
);
}
函数onquerysucceed(发送方,参数){
var DocSet=“”;
var listItemEnum=collListItem.getEnumerator();
while(listItemEnum.moveNext()){
var oListItem=listItemEnum.get_current();
DocSet+='\n\nID:'+oListItem.get_id()++'\n名称:'+oListItem.get_项('FileLeafRef');
}
//在这里,我想获取文档集中的文件
警报(DocSet.toString());
}
函数onQueryFailed(发送方,参数){
警报('请求失败。'+args.get_message()+
'\n'+args.get_stackTrace());
}
如何通过SharePoint CSOM获取文档集的文件
假设以下结构:
Documents (library)
|
2013 (Document set)
基于查询的方法
以下示例演示如何使用返回位于文档集中的文件:
要点:
- 用于返回 仅位于特定url下的文件
var listTitle = 'Documents';
var docSetUrl = '/Documents/2013';
getListItems(listTitle,docSetUrl,
function(items){
for(var i = 0; i < items.get_count();i++) {
var file = items.get_item(i).get_file();
console.log(file.get_title());
}
},
function logError(sender,args)
{
console.log(args.get_message());
});
用法
var docSetUrl='/Documents/2013'// 请查找完成以下操作的完整代码
1.根据我的条件获取所需的文档集
2.通过检查“自定义”列中的值,获取该特定文档集中的所有文件
ExecuteOrderLayUntilScriptLoaded(main函数,“sp.js”);
函数mainformation(){
var currentListID=getQueryStringValue(“列表”);
var clientContext=new SP.clientContext.get_current();
this.ListId=“{”+currentListID+“}”;
var oList=clientContext.get_web().get_lists().getById(ListId);
var camlQuery=new SP.camlQuery();//启动查询对象
var currentDocSetID=getQueryStringValue(“ID”);
camlQuery.set_viewXml(“”+currentDocSetID+'1');
this.collListItem=oList.getItems(camlQuery);
加载(collListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this,this.onquerySucceed),
Function.createDelegate(this,this.onQueryFailed)
);
}
函数onquerysucceed(发送方,参数){
var DocSet=“”;
var listItemEnum=collListItem.getEnumerator();
while(listItemEnum.moveNext()){
var oListItem=listItemEnum.get_current();
DocSet+=oListItem.get_项('FileLeafRef');
}
//在这里,我想获取文档集中的文件
//警报(DocSet.toString());
var fsoType=oListItem.get_fileSystemObjectType();
if(oListItem.FileSystemObjectType==SP.FileSystemObjectType.Folder)
{
//var folderUrl=“/”+listName+“/”+DocSet.toString();
var RawFolderUrl=getQueryStringValue(“根文件夹”);
var pos=RawFolderUrl.lastIndexOf('/');
var folderUrl=RawFolderUrl.substring(0,pos)+“/”+DocSet.toString();
GetFilesFromFolder(folderUrl);
}
}
蒜状变种;
函数GetFileFromFolder(folderUrl)
{
var context=new SP.ClientContext.get_current();
var web=context.get_web();
var list=web.get_lists().getById(ListId);
//使用createAllItemsQuery也可以获取子文件夹中的项目。否则,请使用new SP.CamlQuery()仅从单个文件夹获取项目
var query=SP.CamlQuery.createAllItemsQuery();
query.set_folderServerRelativeUrl(folderUrl);
allItems=list.getItems(查询);
load(allItems,“Include(File,FileSystemObjectType,Document\u x0020\u Type,Title)”;
executeQueryAsync(Function.createDelegate(this,this.OnSuccess),Function.createDelegate(this,this.OnFailure));
}
函数OnSuccess()
{
var listItemEnumerator=allItems.getEnumerator();
while(listItemEnumerator.moveNext())
{
var currentItem=listItemEnumerator.get_current();
如果(currentItem.get_fileSystemObjectType()=“0”)
{
var file=currentItem.get_file();
if(file!=null&¤tItem.get_item(“Document_x0020_Type”)=“03.Minutes”)
{
//警报('File Name:'+File.get_Name()+'\n'+'文件Url:'+File.get_serverRelativeUrl());
//警报(currentItem.get_项目(“标题”);
var link=document.getElementById(“prvMinutes”);
link.href=file.get_serverRelativeUrl();
//link.innerHTML=currentItem.get_项目(“标题”);
link.innerHTML=file.get_name();
}
}
}
}
函数OnFailure(发送方,参数){
警报(“失败。消息:+args.get_Message());
}
函数onQueryFailed(发送方,参数){
警报('请求失败。'+args.get_message()+
'\n'+args.get_stackTrace());
}
功能性槲皮素
var listTitle = 'Documents';
var docSetUrl = '/Documents/2013';
getListItems(listTitle,docSetUrl,
function(items){
for(var i = 0; i < items.get_count();i++) {
var file = items.get_item(i).get_file();
console.log(file.get_title());
}
},
function logError(sender,args)
{
console.log(args.get_message());
});
function getFiles(folderUrl,success,error)
{
var ctx = SP.ClientContext.get_current();
var files = ctx.get_web().getFolderByServerRelativeUrl(folderUrl).get_files();
ctx.load(files);
ctx.executeQueryAsync(
function() {
success(files);
},
error);
}
var docSetUrl = '/Documents/2013'; //<-- '2013'
getFiles(docSetUrl,
function(files){
for(var i = 0; i < files.get_count();i++) {
var file = files.get_item(i);
console.log(file.get_title());
}
},
function logError(sender,args)
{
console.log(args.get_message());
});