我对xul和javascript有一个奇怪的问题。我有一个包含多行数据的树。我必须选择有效列设置为"NO"
的每一行,并为整行更改background color
。
我的javascript代码是这样的:
function markInactive() {
var tree = document.getElementById('bsTree');
var treerow;
for (var i = 0; i < tree.view.rowCount; i++) {
if (tree.view.getCellText(i, tree.columns.getNamedColumn("bsActive")) == "NO") {
treerow = tree.view.getItemAtIndex(i);
treerow.firstChild.setAttribute('style', 'background: #FF0000');
}
}
}
现在奇怪的部分。这不起作用,因为我的jsconsole返回错误getItemAtIndex is not a function
。我不知道该怎么做。
答案 0 :(得分:0)
我通过构建自己的自定义树视图并编辑树的getCellProperties方法来修复此问题
getCellProperties: function (row, col, props) {
if(tree.view.getCellText(row, tree.columns.getNamedColumn("bsActive")) == "NO"){
var aserv=Components.classes["@mozilla.org/atom-service;1"].
getService(Components.interfaces.nsIAtomService);
props.AppendElement(aserv.getAtom("makeItRed"));
}
}
和CSS:
treechildren::-moz-tree-cell(makeItRed){
background-color: #ff0000;
}