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

How to retrieve metadata of document set using JavaScript

本文关键字:元数据 文档 检索 何使用 JavaScript      更新时间:2023-09-26

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

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

使用文档集属性web部件

首先,请记住,已经有一个web部件可以自动显示当前文档集中的元数据。这个web部件被称为"文档集属性",可以在web部件的"文档集"类别中找到。

它显示的字段可以通过导航到Library Settings,单击content Types下的Document Set内容类型的名称,然后单击"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");