2016-08-12 56 views
9

我试图实现的首要要求是显示注释(在列表中逐项显示)。Sharepoint:如何在交叉发布场景中的显示模板上显示AppendOnlyHistory

我在创作端添加了该功能,方法是在列表中启用版本控制,并将选项“追加对现有文本的更改”设置为true的选项添加文本字段。 这实际上允许我对项目进行评论并按时间顺序显示,但仅在创作方面。 问题在于UI部分将在另一个网站集上完成,我无法找到直接获取所有评论的方法。

到目前为止,每一个资源,我发现点

<SharePoint:AppendOnlyHistory runat="server" FieldName="YourCommentsFieldName" ControlMode="Display"/> 

的事情是,我不能(不知道如何)使用此显示模板中。 到目前为止,我正在使用REST API的所有我的数据,通过

 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); 
      } 
     }); 

什么这给了我只是最新的评论。我需要一个简单的方法来抓住整个线程。

回答

0

我结束了使用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); 
       }); 
      } 
     }); 
    } 
} 

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