如何在Ext.JS网格中禁用行选择?
答案 0 :(得分:8)
您必须将disableSelection属性设置为true。如果指定了SelectionModel,则忽略其值。
例如:
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'
});
如果要仅禁用某些行的选择,可以向SelectionModel“beforerowselect”事件添加一个侦听器,并在不希望选择行时返回false。
答案 1 :(得分:4)
如果您没有网格的选择模型
,请使用此配置var grid = new Ext.grid.GridPanel({
disableSelection: true,
});
否则你这个小技巧来禁用RowSelectionModel中的选择
var grid = new Ext.grid.GridPanel({
selModel : new Ext.grid.RowSelectionModel({selectRow: Ext.emptyFn})
});
答案 2 :(得分:1)
你可以为你的网格做另一招,看起来像这样:
grid.getSelectionModel().lock();