在我的SharePoint站点中,我有一些带有元数据(预算、客户名称、城市..)的文档集。我想要更改文档集主页的默认外观。我希望检索当前文档集的元数据,并将其显示在内容编辑器web部件中。
如何使用JavaScript并根据单据集ID检索当前单据集元数据?
发布于 2016-09-07 02:20:10
使用文档集属性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");https://stackoverflow.com/questions/39352146
复制相似问题