2013-08-28 44 views

回答

1

任务可以使用列渲染器来解决:http://jsfiddle.net/bLgSA/10/

var button = Ext.create('Ext.button.Button', { 
    text: 'btn', 
    listeners: { 
     click: function() { 
      var sm = grid.getSelectionModel(); 
      if (sm.hasSelection()) { 
       var rec = sm.getSelection()[0]; 
       if (rec.get("color") == "black") 
        rec.set("color", "red"); 
       else 
        rec.set("color", "black"); 
      } 
     } 
    } 
}); 

var renderer = function(value, metaData, record) { 
    metaData.style = 'color:'+record.get("color"); 
    return value; 
} 

var grid = Ext.create('Ext.grid.Panel', { 
    height: 300, 
    width: 400, 
    title: 'hello', 
    columns: [ 
     {text: 'c1', dataIndex: 'id', renderer: renderer}, 
     {text: 'c2', dataIndex: 'label', renderer: renderer} 
    ], 
    store: Ext.create('Ext.data.Store', { 
     fields: ['id', 'label', 'color'], 
     data: [ 
      {id: 0, label: 'a', color: 'black'}, 
      {id: 1, label: 'b', color: 'red'} 
     ] 
    }) 
}); 

grid.render(Ext.getBody()); 
button.render(Ext.getBody()); 
+0

谢谢你的回答......我会用,如果我想有颜色到记录,但我只是想更改选定行的背景颜色,当我按下一个按钮。我怎么能这样做?谢谢...... – sonseiya

+0

那么问题是什么?将颜色字段添加到网格商店的模型中,使其不具有持久性,并仅在客户端使用它。 – Damask

1

这是一次选择一个行和亮点为选定行添加CSS类

方式
function rowHighlight() 
    {  
    $('#facCodes tr').click(function(event){ 
    $(this).addClass("click").siblings().removeClass("click"); 
    }); 
    }