1

我有一个网格面板和 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/的示例代码。怎么解决 谢谢

4

1 回答 1

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()
    });
});
于 2013-07-19T08:47:33.377 回答