jquery - GenerateIIDForListItem 返回 null
问题描述
我是 CSR 的新手,试图根据状态对整个 Sharepoint List 行进行编码,但代码返回 null,如下所示:
for (var i=0;i<rows.length;i++)
{
var status = rows[i].Request_x0020_Status;
var rowId = GenerateIIDForListItem(ctx, rows[i]);//return rowID as (0,421,0)
var row = document.getElementById(rowId);//returns null
if(status=="Rechazado")
{}
//row.style.backgroundColor = "#b1b1b1";
}
解决方案
使用此 JSLink 代码根据请求状态列为整行着色:
<script type="text/javascript">
(function() {
var overrideCurrentContext = {};
overrideCurrentContext.Templates = {};
overrideCurrentContext.OnPostRender = HighlightProductRows;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCurrentContext);
})();
function HighlightProductRows(ctx) {
var statusColors = {
'Rechazado': '#b1b1b1',
'Pending': '#FFD800',
'Completed': '#01DF3A'
};
var rows = ctx.ListData.Row;
for (var i = 0; i < rows.length; i++) {
console.log(rows[i]);
var status = rows[i]["Request_x0020_Status"];
var rowId = GenerateIIDForListItem(ctx, rows[i]);
console.log(rowId);
var row = document.getElementById(rowId);
row.style.backgroundColor = statusColors[status];
}
}
</script>
推荐阅读
- java - 将动态生成的表单的edittext数据保存到服务器
- python - 为房地产网站建立综合抓取程序/数据库
- javascript - How to pass dynamic variable inside ng-repeat
- testing - 在 TestCafe 中使用标签(Smoke、regression)
- php - Select * from `transactions` where 'order_id' like "'%115%'"
- android - Android:领域数据库从数据库中删除前N条记录后的所有记录
- wildfly - WildFly common.sh 脚本丢失
- c# - Azure - 推送通知 - 无法发送测试消息
- elasticsearch - 最小化垃圾收集
- javascript - JavaScript 如何防止在 Promise 中推送 null?