如何使用 JavaScript 检索文档集的元数据

How to retrieve metadata of document set using JavaScript

在我的 SharePoint 站点中,我有包含一些元数据(预算、客户名称、城市 ..)的文档集。我想更改 doc-set 主页的默认外观。我想检索当前文档集的元数据,在内容编辑器 Web 部件中显示它。

如何使用 JavaScript 并根据文档集的 ID 检索当前文档集元数据?

使用文档集属性 Web 部件

首先,请记住,已经有一个 Web 部件可以自动显示当前文档集中的元数据。此 Web 部件称为 "Document Set Properties",可在 Web 部件的 "Document Sets" 类别中找到。

可以配置它显示的字段,方法是导航到“库设置”,单击“内容类型”下的文档集内容类型的名称,然后单击 "Document Set Settings."

改用 REST 或 JSOM

如果由于某种原因 Web 部件不适合您的目的,您可以使用 REST API 或 JavaScript 客户端对象模型来检索有关当前文档集的元数据。可以从URL.

查询字符串部分的"ID"参数获取当前文档集的ID

SharePoint 提供了一种方便的 GetUrlKeyValue() 方法来轻松获取查询字符串参数。

休息

var itemId = GetUrlKeyValue("ID");
var listGuid = GetUrlKeyValue("List");
var xhr = new XMLHttpRequest();
xhr.open("GET", "/_api/lists('"+listGuid+"')/items("+itemId+")");
xhr.setRequestHeader("accept","application/json;odata=verbose");
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if(xhr.status == 200){
            var item = JSON.parse(xhr.responseText).d;
            var title = item.Title;
            var desc = item.DocumentSetDescription;
            // You can retrieve any other properties here as necessary
        }else{
           alert("error "+xhr.status+": "+xhr.responseText);
        }
    }
};
xhr.send();

JSOM

SP.SOD.ExecuteOrDelayUntilScriptLoaded(function(){
    var listGuid = GetUrlKeyValue("List");
    var itemId = GetUrlKeyValue("ID");
    var clientContext = new SP.ClientContext();
    var item = clientContext.get_web().get_lists().getById(listGuid).getItemById(itemId);
    clientContext.load(item);
    clientContext.executeQueryAsync(
        function(){
             var title = item.get_item("Title");
             var desc = item.get_item("DocumentSetDescription");
             // You can retrieve any other properties here as necessary
        },
        function(sender,args){
            alert(args.get_message());
        }
    );
},"sp.js");