【问题标题】:Filter data with JSLink Sharepoint使用 JSLink Sharepoint 过滤数据
【发布时间】:2015-05-15 17:13:34
【问题描述】:
【问题讨论】:
标签:
javascript
sharepoint
sharepoint-2013
jslink
【解决方案1】:
在提供的示例中,过滤器是按行索引应用的,这解释了为什么在应用排序之前和之后显示不同的行。
以下示例演示了如何通过列表项 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');
})();
结果
过滤列表视图
应用排序后的过滤列表视图