【问题标题】:Change styling of dojo treegrid cell if value changes如果值更改,则更改 dojo treegrid 单元格的样式
【发布时间】:2011-10-31 12:42:11
【问题描述】:

我拥有的是一个填充了来自 ajax 的值的树形网格。每 30 秒刷新一次存储并显示新数据。

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

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

【问题讨论】:

    标签: dojo treegrid


    【解决方案1】:

    您可以使用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;
    };
    
    })();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2010-09-27
      • 1970-01-01
      相关资源
      最近更新 更多