我有一些 JavaScript 将根据特定列中的值对 SharePoint 列表视图 Web 部件中的行进行着色。这部分工作正常,并且在页面加载时行的颜色正确。我遇到的问题是,当列表被过滤时(如果您单击任何列标题并按升序或降序排列)格式丢失并且颜色消失。
我正在寻找一种在过滤操作完成后保留或重新应用格式的方法。如果页面被刷新,被选择的过滤器将保留在原地并且颜色将返回。
我需要一种在应用过滤器后重新应用颜色的方法,而不仅仅是在页面加载时。
提前致谢。
这是我当前的 JS:
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
OnPostRender: function(ctx) {
var rows = ctx.ListData.Row;
for (var i=0;i<rows.length;i++)
{
var trimmed = rows[i]["Age"]
var final = trimmed.replace(",", "");
var oneWeek = final < 7;
var oneToTwo = final >= 7 && final <= 14;
var twoOrMore = final > 14;
if (oneWeek)
{
var rowElementId = GenerateIIDForListItem(ctx, rows[i]);
var tr = document.getElementById(rowElementId);
tr.style.backgroundColor = "#CCFFCC";
}
else if (oneToTwo)
{
var rowElementId = GenerateIIDForListItem(ctx, rows[i]);
var tr = document.getElementById(rowElementId);
tr.style.backgroundColor = "#FFEECC";
}
else if (twoOrMore)
{
var rowElementId = GenerateIIDForListItem(ctx, rows[i]);
var tr = document.getElementById(rowElementId);
tr.style.backgroundColor = "#FFCCCC";
}
}
}
}
);