Sharepoint显示模板如何使用组显示模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sharepoint显示模板如何使用组显示模板相关的知识,希望对你有一定的参考价值。

控件显示模板中的代码使用_#= ctx.RenderGroups(ctx) =#_,还有另一个名为group_content.js的JS文件被调用,如何将数据拆分成组以便为每个组呈现一些html

答案

经过深入研究,您需要手动操作才能使用它。

  1. 创建组显示模板文件,只需使用“搜索”或“内容搜索”文件夹中的默认“group_xxx.html”,无论您使用什么。
  2. 必须下载一个副本或您搜索Web部件(导出)并将“Group TemplateId”中的值更改为您的组JS文件。
  3. CODING对象模仿ResultTables对象

最终代码

ctx.ClientControl.set_groupTemplateId('~sitecollection/_catalogs/masterpage/display templates/content web parts/Group_Content_QA.js');
ctx.ListDataJSONGroupsKey = "ResultGrouped"
ctx.ListData.ResultGrouped = [];

//function to create the ResultTables fake array
function createResultGroup(items){
 return {
  ResultRows: items, 
  RowCount: items.length,
  TableType: "RelevantResults",
 }
};

//just a ref
var _items = ctx.ListData.ResultTables[0].ResultRows;

//categories dictionary
var _groupDictionary = {};

//populating dictionary categories
_items.forEach(function(e) {
    if ( !_groupDictionary[e.QACategoryOWSCHCS] ){
   _groupDictionary[e.QACategoryOWSCHCS] = [];
    }
});

//populating dictionary categories with items
_items.forEach(function(e) {
 _groupDictionary[e.QACategoryOWSCHCS].push(e);
});

//adding to ctx categories as a named array
ctx.groupsNames = Object.keys(_groupDictionary);

//populating fake ResultTables array (ResultGrouped)
ctx.groupsNames.forEach(function(g) {
 ctx.ListData.ResultGrouped.push(
  createResultGroup(_groupDictionary[g])
 );
});

read more here

以上是关于Sharepoint显示模板如何使用组显示模板的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Rest 在 SharePoint 中获取多个模板类型列表

在模板Django中显示没有组的用户

Django模板:如果用户属于多个组,则仅显示一次链接

如何在模板上显示 Django ManyToMany?需要简单的代码

在 Django 模板的 Bootstrap 列表组中显示数据

Sharepoint 2013:不显示审批工作流程选项