2013-08-28 242 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"); 
    }); 
    }