在for..in循环中使用setCellCssStyles
能够使用具有行的显式索引号的setCellCssStyles为SlickGrid中的特定单元着色,例如:
grid.setCellCssStyles("key_name", {
0: {
col_name: "css_class",
},
})
但是当切换到for..in循环的计数器时,它不起作用:
grid.setCellCssStyles("key_name", {
i: {
col_name: "css_class",
},
})
尝试在setCellCssStyles之后使用/不使用settimeout重新渲染网格(grid.render()),typeOf(i)是Number
有什么想法吗?
谢谢(:
答案 0 :(得分:0)
这是因为当您使用相同的哈希设置css样式时,您的“keyname”是相同的。如果你使用相同的“keyname”和不同的哈希值,它会覆盖前一个哈希值,这就是它在for循环中不起作用的原因。尝试将循环变量添加到“keyname”,看看它是否有效。
答案 1 :(得分:-1)
这是一个javascript问题,而不是slickgrid。该
{ i: value }
object initialiser是显式初始化的便捷简写,它实际上等同于{ "i": value }
。
请参阅:Using a variable for a key in a JavaScript object literal
您应该使用类似
的内容var temp = {};
for (var i = 0; i < 5; i++) {
temp[i] = value;
}
值得注意的是,对象键必须始终是文本,但在很多情况下,数字到文本的转换由Javscript处理。
如果您认为自己正在初始化数组,那么最好先阅读Javascript数组和对象之间的区别。