应用循环索引后,setCellCssStyles无法正常工作

时间:2018-01-25 19:22:36

标签: javascript css coffeescript styles slickgrid

在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

有什么想法吗?

谢谢(:

2 个答案:

答案 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数组和对象之间的区别。