首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sharepoint:如何在跨发布场景中的显示模板上显示AppendOnlyHistory

Sharepoint:如何在跨发布场景中的显示模板上显示AppendOnlyHistory
EN

Stack Overflow用户
提问于 2016-08-12 13:53:41
回答 1查看 1.4K关注 0票数 9

我试图实施的最重要的要求是显示评论(根据一份清单,逐项提出)。

我在创作端添加了这个特性,方法是在列表上启用版本控制,并添加一个文本字段,选项是“将更改附加到现有文本”设置为true。这确实允许我对项目进行评论,并按时间顺序显示它们,但只在创作方面。问题是UI部分将在另一个站点集合上完成,我无法找到一种简单的方法来获得所有的评论。

到目前为止,我找到的所有资源都指向

代码语言:javascript
复制
 <SharePoint:AppendOnlyHistory runat="server" FieldName="YourCommentsFieldName" ControlMode="Display"/>

问题是,我不能(不知道如何)在显示模板中使用这个。到目前为止,我正在使用REST获取所有数据,通过

代码语言:javascript
复制
        var siteUrl=_spPageContextInfo.webAbsoluteUrl.replace("publishing","authoring");
        $.ajax({
            url: siteUrl + "/_api/web/lists/getbytitle('" + listname + "')/items(" + id + ")",
            type: 'GET',
            async:false,
            headers: {"accept": "application/json;odata=verbose",},
            dataType: 'JSON',
            success: function(json) {
               console.log(json);
               //var obj = $.parseJSON(JSON.stringify(json.d.results));
               //alert(obj);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("error :"+XMLHttpRequest.responseText);
            }
        });

这给我的只是最新的评论。我需要一个简单的方法来掌握整个线程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 07:17:07

最后,我使用了javascript对象模型来获得这样的结果:

代码语言:javascript
复制
function GetComments(listname, itemId) {
    var siteUrl = _spPageContextInfo.webAbsoluteUrl.replace("publishing", "authoring");
    if ($(".comments-history").length) {
        $().SPServices({
            operation: "GetVersionCollection",
            async: false,
            webURL: siteUrl,
            strlistID: listname,
            strlistItemID: itemId,
            strFieldName: "Comments",
            completefunc: function (xData, Status) {

                $(xData.responseText).find("Version").each(function (data, i) {

                    var xmlComment = $(this)[0].outerHTML;
                    var arr = xmlComment.split(/comments|modified|editor/g);
                    var comment = arr[1].trim().substring(2, arr[1].length-2);
                    var dateSt = Date.parse((arr[2].substring(1, arr[2].length)).replace('/"', ''));
                    var user = getUsername(arr[3]);

                    var st = "<div class='comment-item'><div class='comment-user'>" + user + "(" + FormatDate(dateSt) + ")</div>";
                    st += "<div class='comment-text'>" + comment + "</div></div>";
                    $(".comments-history").append(st);
                });
            }
        });
    }
}

解析可能会更好,但这只是一个初步的工作思路。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38919724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档