提供された例では、フィルターは行インデックスによって適用されます。これは、並べ替えが適用される前後で異なる行が表示される理由を説明しています。
以下の例は、リスト項目 idによって行を非表示にする方法を示しています。この場合、フィルターは同じ行に一貫して適用されます。
(function () {
function listPreRender(renderCtx) {
var excludeItemIds = [1]; //hide list item with Id=1
var rows = renderCtx.ListData.Row; //get current rows
var filteredRows = rows.filter(function(row){
var curItemId = parseInt(row.ID);
if(excludeItemIds.indexOf(curItemId) === -1)
return row;
});
renderCtx.ListData.Row = filteredRows;
renderCtx.ListData.LastRow = filteredRows.length; //update ListData.LastRow property
}
function registerListRenderer()
{
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates : {
OnPreRender : listPreRender
}
});
}
ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js');
})();
結果
フィルタされたリスト ビュー
並べ替えを適用した後のフィルター処理されたリスト ビュー