extjs gridpanel不能选中多行

2024-12-10 06:23:24
推荐回答(3个)
回答(1):

第一、这个sm,必须在ColumnModel和Gridpanel里都有,而且是同一个,而且也不能和其他Gridpanel共用同一个SM。
第二、要想多选必须点复选框而不能点行。
第三、如果你的grid行支持拖拽那么也不能多选,这是Extjs的一个问题,貌似没法解决。
第四、如果以上三种都不行,你在选行的时候按住Shift或是ctrl就可以了!

回答(2):

function deletefileItems() {
var gsm = fileGrid.getSelectionModel();//获取选择列
var rows = gsm.getSelections();//根据选择列获取到所有的行
if (rows.length > 0) {
//当有选择的数据的时候
for (var i = 0; i < rows.length; i++) {
//循环迭代所有的选择的row
var row = rows[i];
var filePath = row.get('filePath');//这个就是你想要的
Ext.Ajax.request({
//省略ajax请求后台
});
}
}else{
Ext.Msg.alert('提示', '请选择要删除的记录');
}
};
说明:
var filePath = row.get('filePath');
利用row.get('字段名称');
可以获得你想要的字段值

回答(3):

var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm)
var grid = new Ext.grid.GridPanel({
cm:cm,
sm:sm
})
sm 必须有,如果只在cm中写了sm 复选框就不能多选。
如果只在grid中加了sm ,就不会显示复选框