0
コントロール表示テンプレートのコードに_#= ctx.RenderGroups(ctx) =#_
が使用され、呼び出される別のJSファイルgroup_content.js
があります。グループごとにHTMLをレンダリングするためにデータをグループに分割するにはどうすればいいですか? ?Sharepoint表示テンプレートグループ表示テンプレートの使い方
コントロール表示テンプレートのコードに_#= ctx.RenderGroups(ctx) =#_
が使用され、呼び出される別のJSファイルgroup_content.js
があります。グループごとにHTMLをレンダリングするためにデータをグループに分割するにはどうすればいいですか? ?Sharepoint表示テンプレートグループ表示テンプレートの使い方
集中的な調査の後、手動で使用する必要があります。
コピーをダウンロードするか、WebPart(エクスポート)を検索し、 "GroupTemplateId"の値をグループJSファイルに変更する必要があります。 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])
);
});
を模倣するためのオブジェクトコード