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 に答える