Extjs Grid - 如何在CheckboxModel列中将类名添加到tr

时间:2013-07-19 05:24:57

标签: extjs checkbox grid extjs4.1

我有一个gridpanel和CheckboxModel列

在功能

renderer:function(value,metaData,record,rowIndex,colIndex,store,view){
      if (record.data.check ==0) {
         metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special';
         return '<div class="' + Ext.baseCSSPrefix + 'grid-row-checker">&#160;</div>';   
      }else { 
         metaData.trCls = Ext.baseCSSPrefix + 'x-grid-row-selected'; // not working
         return '<div class="' + Ext.baseCSSPrefix + 'grid-row-checker">&#160;</div>';   
      }
}

如何将类名添加到tr以选中复选框。我尝试下面的代码,但没有工作

 metaData.trCls = Ext.baseCSSPrefix + 'x-grid-row-selected'; // not working

如何做到这一点,谢谢

修改的 这是我的问题 http://jsfiddle.net/wj9GM/ 的示例代码。如何解决这个问题

1 个答案:

答案 0 :(得分:1)

Ext.onReady(function() {

      // Create a dummy store
    var store = new Ext.data.ArrayStore({
        fields: ['id', 'name', 'check'],
        data: [
           [1, 'profile 1', 1], 
           [2, 'profile 2', 1],
           [3, 'profile 3', 0]
        ]
    });

    var selModel = Ext.create('Ext.selection.CheckboxModel', {
        checkOnly: true,
        mode: 'MULTI'
    });

    var grid = new Ext.grid.GridPanel({
        width: 400,
        height: 200,
        store: store,
        loadMask: true,
        selModel: selModel,
        columns: [
            {header: 'Id', sortable: true, dataIndex: 'id' },
            {header: 'Name', sortable: true, dataIndex: 'name'}
        ],
        listeners: {
            'afterlayout': function(){
                var records = this.getView().getRecords(this.getView().getNodes());
                var result = new Array();
                Ext.Array.each(records, function(record, index, records) {
                    if(record.get('check', 1)) {
                        result.push(record);
                    }
                });
                selModel.select(result); 
            }
        },
        renderTo: Ext.getBody()
    });
});