2011-09-11 47 views
1

任何想法如何突出新插入的行?如何突出Extjs網格新插入的行?

我試圖使用商店的添加事件,它給了我最後插入的記錄和記錄索引。

但我怎樣才能引用它來突出顯示網格行?

這是商店。

Ext.create('Ext.data.Store', { 
    model : 'invoice_model', 
    storeId : 'invoice_store', 
    proxy : { 
     type: 'memory' 
    }, 
    listeners : { 
     add : function(s, r, i){ 
      console.log(r) 

     } 
    } 
}); 

問候

回答

4

假定「i」是該記錄的網格上的索引(因此,在網格中的行的索引):

Ext.fly(myGrid.getView().getNode(i)).highlight("highlight color", { 
      attr: 'color', duration: 5000 
     }); 

然而,如果插入記錄總是要在所述第一行,你可以指定第一個加入一個記錄之後:

Ext.fly(myGrid.getView().getNode(0)).highlight("highlight color",{ 
       attr: 'color', duration: 5000 
      }); 

要突出顯示該行的背景顏色,你可以添加一個亮點類新插入的行:

CSS:

.myHighlight{ 
     background : your-highlight-color 
    } 

JS

Ext.fly(myGrid.getView().getNode(0)).addCls("myHighlight"); 

,然後將其刪除,一旦你做了強調:

Ext.fly(grid.getView().getNode(0)).removeCls("myHighlight"); 
+0

非常感謝你的配偶 –

2

在你的附加功能,嘗試
Ext.fly(myGrid.getView().getNode(r.getId())).highlight("0000ff", { attr: 'color', duration: 2 });

變化的亮點配置您的喜好

編輯

Store的add事件給我們一個數組rec已添加的ords。如果你想突出顯示所有的數組,遍歷數組併爲數組中的每條記錄調用上面的代碼片段。如果你想突出特定的一個,(可能是第一個或最後一個),從數組中獲取並調用上面的代碼片段。在上面的代碼片段中,r是指特定的記錄。

+0

感謝您的回答,試圖和即時得到錯誤的螢火r.getId不是一個函數 –