2011-10-31 87 views
1

我所擁有的是填充了ajax值的treegrid。每隔30秒刷新一次存儲並顯示新數據。如果值更改,更改dojo treegrid單元格的樣式

當它的值與舊值不同時,我需要更改treegrid單元格的樣式(顏色或背景顏色)。要求是從javascript進行比較和造型。

任何想法如何做到這一點?

回答

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; 
}; 

})(); 

可能有更好的方法來跟蹤先前值的,但因爲你的商店得到改變,我真的想不出一個。

相關問題