2010-10-21 2 views

risposta

8

È necessario impostare la proprietà disableSelection su true. Il suo valore viene ignorato se viene specificato un SelectionModel.

Ad esempio:

var grid = new Ext.grid.GridPanel({ 
    disableSelection: true, 
    store: new Ext.data.Store({ 
     reader: reader, 
     data: xg.dummyData 
    }), 
    columns: [ 
     {id:'company', header: "Company", width: 200, sortable: true, dataIndex: 'company'}, 
     {header: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'}, 
     {header: "Change", width: 120, sortable: true, dataIndex: 'change'}, 
     {header: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'}, 
     {header: "Last Updated", width: 135, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} 
    ], 
    viewConfig: { 
     forceFit: true, 

//  Return CSS class to apply to rows depending upon data values 
     getRowClass: function(record, index) { 
      var c = record.get('change'); 
      if (c < 0) { 
       return 'price-fall'; 
      } else if (c > 0) { 
       return 'price-rise'; 
      } 
     } 
    }, 
    width:600, 
    height:300, 
    frame:true, 
    title:'Framed with Checkbox Selection and Horizontal Scrolling', 
    iconCls:'icon-grid' 
}); 

Se si desidera disattivare la selezione di solo alcune righe, è possibile aggiungere un listener per SelectionModel "beforerowselect" evento e restituire false quando non si vuole fila per essere selezionato.

+1

Grazie, ma cosa succede se ho anche selectionModel. – John

+0

Vuoi disattivare la selezione di tutte le righe o di alcune delle righe? – ncardeli

+0

Voglio disabilitare tutte le righe – John

4

uso questa configurazione se non si dispone di un modello di selezione per voi griglia

var grid = new Ext.grid.GridPanel({ 
    disableSelection: true, 
}); 

altro che questo piccolo trucco per disabilitare la selezione nel RowSelectionModel

var grid = new Ext.grid.GridPanel({ 
    selModel : new Ext.grid.RowSelectionModel({selectRow: Ext.emptyFn}) 
}); 
1

si può fare un altro trucco per la tua griglia, assomiglia a questa:

grid.getSelectionModel().lock(); 
+0

Molto buono grazie – durtto