如何突出显示Extjs网格新插入的行?

时间:2011-09-11 16:03:39

标签: javascript extjs extjs4

知道如何突出显示新插入的行吗?

我试图使用商店的添加事件,它给了我最后插入的记录和记录索引。

但是如何引用它来突出显示网格行?

这是商店。

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

        }
    }
});

此致

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:2)

在您的添加功能中,尝试使用Ext.fly(myGrid.getView().getNode(r.getId())).highlight("0000ff", { attr: 'color', duration: 2 });

根据您的偏好更改突出显示配置

修改

Store的add事件为我们提供了一系列已添加的记录。如果要突出显示所有这些内容,请迭代数组并为数组中的每个记录调用上面的代码段。如果你想突出特定的一个,(可能是第一个或最后一个),从数组中获取它并调用上面的代码片段。在上面的代码片段中,r指的是特定记录。