由於SharePoint 2013使用客戶端側渲染(CSR)作爲默認渲染模式我會推薦以下方法。基本上這個想法是在客戶端定製列表視圖,如下所示。
假設Requests
列表包含RequestNo
列。
下面的JavaScript模板適用於當RequestNo
列列表項時,曾多次強調行:
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
OnPostRender: function(ctx) {
var rows = ctx.ListData.Row;
var counts = getItemCount(rows,'RequestNo'); //get items count
for (var i=0;i<rows.length;i++)
{
var count = counts[rows[i]["RequestNo"]];
if (count > 1)
{
var rowElementId = GenerateIIDForListItem(ctx, rows[i]);
var tr = document.getElementById(rowElementId);
tr.style.backgroundColor = "#ada";
}
}
}
});
function getItemCount(items,propertyName)
{
var result = {};
for(var i = 0; i< items.length; i++) {
var groupKey = items[i][propertyName];
result[groupKey] = result[groupKey] ? result[groupKey] + 1 : 1;
}
return result;
}
如何應用更改
選項1:
以下是可能的最簡單的方法之一如何應用這些更改:
- 公開賽在
Edit
模式的頁面
- 在頁面上使用
script
標籤到Web部件
選項2包圍它添加Content Editor
或Script Editor
Web部件
插入指定的JavaScript模板:
- 將指定的JavaScript模板保存爲文件(讓我們將其命名爲duplicatehighlight。JS),並上傳到網站資產庫
- 打開的頁面中
Edit
模式和列表視圖Web部件找到JSLink
財產
- 指定值:
~sitecollection/SiteAssets/duplicatehighlight.js
並保存更改。
結果
瓦迪姆嗨。我試過了,但現在我所有的行都被高亮顯示,而不僅僅是重複的行。我將腳本中的'RequestNo'替換爲列的名稱。還有什麼我失蹤? – 2014-11-24 06:41:40
嗨,我再次驗證腳本,它對我來說完全符合所提供的圖像演示。如果它顯示突出顯示的所有行,可能所有行都被複制(CNO列在您的情況下是重複的)? – 2014-11-24 08:01:53
Hi Vadim,只是一個更新:當我選擇一個列而不是我的標題列時,它終於有效。謝謝加載!但是,是否有任何方法可以顯示亮點,而無需先點擊編輯頁面? – 2014-11-25 04:53:46