如果值更改,则更改dojo treegrid单元格的样式

时间:2011-10-31 12:42:11

标签: dojo treegrid

我所拥有的是一个填充了ajax值的treegrid。每隔30秒刷新一次商店并显示新数据。

我需要更改树形网格单元格的样式(颜色或背景颜色),当它的值与旧单元格不同时。要求是从javascript进行比较和样式化。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用dijit.Tree's getRowStyle方法动态修改样式。只要需要渲染一行,就会调用它。

这样的事情可能会让你开始:

(function(){ // closure for private variables

var previousValues = {};

var myTree = ... // lookup dijit.Tree via dijit.byId, or create

myTree.getRowStyle = function(item){
    var style = {};
    var itemId = myTree.store.getIdentity(item);
    var newValue = myTree.store.getValue(item, "MY_ITEM_VALUE");
    if(newValue !== null &&
            previousValues[itemId] !== null &&
            previousValues[itemId] !== newValue) {
        style.backgroundColor = "#0000FF";
        previousValues[itemId] = newValue;
    }
    return style;
};

})();

可能有更好的方法来跟踪以前的值,但由于您的商店正在改变,我真的想不到一个。