extjs gridpanel不能选中多行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs gridpanel不能选中多行相关的知识,希望对你有一定的参考价值。
var cm=new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
new Ext.grid.CheckboxSelectionModel(singleSelect:false),
header:"ID",dataIndex:"id",sortable: true
,
header:"用户名",dataIndex:"adminName",sortable: true
,
header:"密码",dataIndex:"adminPwd",sortable: true
,
header:"出生日期",dataIndex:"bornDate",sortable: true
,renderer:function(v)
return v.format("Y-m-d");
,
header:"邮箱",dataIndex:"email",sortable: true
,
header:"权限",dataIndex:"role",sortable: true
]);
不知道该怎么改?
第二、要想多选必须点复选框而不能点行。
第三、如果你的grid行支持拖拽那么也不能多选,这是Extjs的一个问题,貌似没法解决。
第四、如果以上三种都不行,你在选行的时候按住Shift或是ctrl就可以了! 参考技术A 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('字段名称');
可以获得你想要的字段值
参考技术B 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 ,就不会显示复选框追问
我试了这种方法 但还是只能选择一个
追答你确定是按我这种方式试了
在我这里可以选择多个,
看看你gridpanel里的属性
ExtJS 3.4.0 GridPanel 有条件地禁用行
【中文标题】ExtJS 3.4.0 GridPanel 有条件地禁用行【英文标题】:ExtJS 3.4.0 GridPanel conditional disabling of rows 【发布时间】:2013-07-08 06:57:15 【问题描述】:我有一个带有 CheckColumn 的 GridPanel。如果在数据加载时未选中该复选框,我需要禁用整行,从而完全防止数据修改。我尝试在 viewConfig 中使用 getRowClass 方法如下:
viewConfig:
getRowClass: function (record, rowIndex, rowPrms, ds)
//If the Sign-Off checkbox is unchecked, disable entire row.
if (record.get('signOff') == 0) return 'disabled-row';
这不起作用。有什么指点吗?
【问题讨论】:
【参考方案1】:反映您的变化。您需要在网格中包含一个配置,即disableSelection : true
。
【讨论】:
这仍然不能阻止我选中复选框。我也需要禁用复选框选择。【参考方案2】:我发现 checkColumn 里面没有 checkBox 对象。它只播放使用 css 选中/取消选中的各种复选框图像。我创建了自己的禁用版本的复选框图像,添加了一些自定义 css,并有条件地将它们加载到 checkColumn.Prototype 的渲染器中。问题解决了!
【讨论】:
以上是关于extjs gridpanel不能选中多行的主要内容,如果未能解决你的问题,请参考以下文章
ExtJs如何在Window窗口中加载页面上的GridPanel??
Extjs GridPanel在有分页的情况下服务端统计合计实现方式