0

我对 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. 我不知道该怎么做。

4

1 回答 1

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;
}
于 2012-08-24T10:07:06.370 回答