【问题标题】:SharePoint JSOM: get SPFolder custom field valueSharePoint JSOM:获取 SPFolder 自定义字段值
【发布时间】:2014-10-23 08:09:43
【问题描述】:

我们有

  1. SharePoint 2013 文档库
  2. 添加到库中的自定义内容类型,基于标准“文件夹”内容类型;添加到内容类型的新“DisplayName”文本字段
  3. 在文档库中创建了一些该自定义内容类型的文件夹

我尝试制作一个 JavaScript 控件来可视化库中的文件夹结构。但我无法获得自定义的“DisplayName”字段值

this.clientContext = SP.ClientContext.get_current();

var web = this.clientContext.get_web();
this.clientContext.load(web);

this.clientContext.executeQueryAsync(function(sender, args) {

    for (var i = 0; i < this.topLevelFoldersUrl.length; i++) {

        var contextParams = {};

        contextParams.folderUrl = web.get_serverRelativeUrl() + "/" + this.topLevelFoldersUrl[i];

        // folder
        contextParams.topLevelFolder = web.getFolderByServerRelativeUrl(contextParams.folderUrl);
        this.clientContext.load(contextParams.topLevelFolder, 'Include(DisplayName)');

        // folder list item
        contextParams.folderListItem = contextParams.topLevelFolder.get_listItemAllFields();
        this.clientContext.load(contextParams.folderListItem);

        // subfolders
        contextParams.folderCollection = contextParams.topLevelFolder.get_folders();
        this.clientContext.load(contextParams.folderCollection);

        this.clientContext.executeQueryAsync(

            function (sender, args) {

                var folderName = contextParams.topLevelFolder.get_name();

                // EXCEPTION goes here: "property has not been initialized"
                var folderDisplayName = contextParams.folderListItem.get_item("DisplayName");

                // visualization code...

            },
            this.onQueryFailed
        );
    }
}, this.onQueryFailed);

是否有特殊的技术来获取文件夹自定义字段?我搜索了所有代码示例以获取列表项及其自定义字段,但这些示例在我的情况下不起作用。

【问题讨论】:

    标签: javascript sharepoint sharepoint-2013 sharepoint-clientobject


    【解决方案1】:

    “DisplayName”似乎是 SharePoint 2013 JSOM 中的保留标识符。将字段名称更改为“ShownName”后,我的代码有效:

    this.clientContext = SP.ClientContext.get_current();
    
    var web = this.clientContext.get_web();
    this.clientContext.load(web);
    
    this.clientContext.executeQueryAsync(function (sender, args) {
    
        for (var i = 0; i < this.topLevelFoldersUrl.length; i++) {
    
            var contextParams = {};
    
            contextParams.folderUrl = web.get_serverRelativeUrl() + "/" + this.topLevelFoldersUrl[i];
    
            contextParams.topLevelFolder = web.getFolderByServerRelativeUrl(contextParams.folderUrl);
            this.clientContext.load(contextParams.topLevelFolder);
    
            contextParams.folderListItem = contextParams.topLevelFolder.get_listItemAllFields();
            this.clientContext.load(contextParams.folderListItem, 'ShownName');
    
            contextParams.folderCollection = contextParams.topLevelFolder.get_folders();
            this.clientContext.load(contextParams.folderCollection);                        
    
            this.clientContext.executeQueryAsync(
    
                function(sender, args) {
    
                    var folderName = folder.get_name(); 
                    var folderDisplayName = folderItem.get_item("ShownName");
    
                    // visualization code...
                },
                this.onQueryFailed
            );
        }
    }, this.onQueryFailed);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      相关资源
      最近更新 更多