Nik*_*kiy 7 sharepoint sharepoint-2013
我有一个启用了版本控制的SharePoint 2013列表.我需要通过REST获取SPListItem版本列表.我可以通过该请求获取SPListItem:http://spbreportportal/Projects/_api/lists/getbytitle('Projects')/Items(1)
但我无法在文档中找到并在响应中如何检索此项目的所有版本.可能吗?
Vad*_*hev 18
似乎不可能获得List Item通过REST/CSOM API的版本,但有其他选择
Versions.aspx应用页面我们的想法是对Versions页面执行get请求: http://<server>/<site>/_layouts/versions.aspx?list={litsID}&ID=<itemID>
function getItemVersions(url,listId,itemId,success)
{
var versionsUrl = url + '/_layouts/versions.aspx?list=' + listId + '&ID=' + itemId;
$.get( versionsUrl, function( data ) {
var versionEntries = parseVersionList(data);
success(versionEntries);
});
}
function parseVersionList(data){
var entries = {};
var versionList = $(data).find('table.ms-settingsframe');
versionList.find('tbody > tr').each(function(i){
if(i > 0 && (i-1) % 2 == 0) {
var verRow = $(this); //get version row
var propsRow = verRow.next(); //get properties row
var versionLabel = verRow.find('td:first').html().trim();
entries[versionLabel] = {};
//extract item properties from propsRow goes here
//...
}
});
return entries;
}
//Usage
var webUrl = _spPageContextInfo.webAbsoluteUrl;
var listId = _spPageContextInfo.pageListId;
var listItemId = 1;
getItemVersions(webUrl,listId,listItemId,function(versionEntries){
console.log(versionEntries);
});
Run Code Online (Sandbox Code Playgroud)
另一个选项是利用列表SharePoint Web服务公开Lists.GetVersionCollection方法返回SharePoint列表中指定字段的版本信息
SPServices示例:
$().SPServices({
operation: "GetVersionCollection",
async: false,
strlistID: "Projects",
strlistItemID: 1,
strFieldName: "Description",
completefunc: function (xData, Status) {
$(xData.responseText).find("Version").each(function(i) {
console.log("Name: " + $(this).attr("Description") + " Modified: " + $(this).attr("Modified"));
});
}
});
Run Code Online (Sandbox Code Playgroud)
注意:这似乎在 2013 年不起作用。我已经在 SharePoint Online 中验证了它的工作原理,它可能在 2016 年以后工作,但我还没有验证后者。
自从这个问题最初发布以来,情况可能已经发生了变化,但现在可以使用 REST API 来获取任何列表/库项目的版本历史记录:
https://url/to/site/_api/web/Lists/getbytitle('MyListName')/items(ITEMID)/versions
Run Code Online (Sandbox Code Playgroud)
这将返回当前版本和所有过去版本的一系列结果,以及每个版本的项目列值。
与其他 REST 端点一样,您可以使用$select、$filter等来进一步操作结果。
| 归档时间: |
|
| 查看次数: |
24030 次 |
| 最近记录: |