【问题标题】:Get all lists root folder with SP.js使用 SP.js 获取所有列表根文件夹
【发布时间】:2014-04-24 08:00:37
【问题描述】:

我需要使用 shrepoint 客户端对象模型获取当前 Web 上列表的所有根文件夹。

我尝试使用此代码,但出现错误

var context = SP.ClientContext.get_current();
var lists = context.get_web().get_lists();
context.load(lists);
context.executeQueryAsync(function (sender, args) {
    var enumerator = lists.getEnumerator();
    while (enumerator.moveNext()) {
       var list = enumerator.get_current();
       var rootFolder = list.get_rootFolder();
       context.load(rootFolder, 'ServerRelativeUrl');
       context.executeQueryAsync(
       function (sender, args) {
           //error
           var url = rootFolder.get_serverRelativeUrl();
           console.log(url);
       },
       function (sender, args) {
           console.log('error');
       });
    }
},
function (sender, args) {
     console.log('error');
});

谢谢

【问题讨论】:

    标签: sharepoint sharepoint-clientobject


    【解决方案1】:

    出现此错误是因为List.RootFolder property 未被请求,因此尚未初始化。

    为了加载List.RootFolder 替换行:

    context.load(lists);
    

    用这个:

    context.load(lists,'Include(RootFolder)');
    

    但指定的示例包含另一个缺陷:

    下面演示了打印所有列表的根文件夹的固定版本:

    var context = SP.ClientContext.get_current();
    var lists = context.get_web().get_lists();
    context.load(lists,'Include(RootFolder)');
    context.executeQueryAsync(function () {
        var enumerator = lists.getEnumerator();
        while (enumerator.moveNext()) {
           var list = enumerator.get_current();
           var rootFolder = list.get_rootFolder();
    
           var url = rootFolder.get_serverRelativeUrl();
           console.log(url);
    
        }
    },
    function (sender, args) {
         console.log('error');
    });   
    

    【讨论】:

    • 很高兴这对您有所帮助! :)
    猜你喜欢
    • 2013-08-11
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2013-11-30
    相关资源
    最近更新 更多