ExtJS GridPanel加上复选框之后,行选中问题
ExtJS GridPanel加上复选框之后,选择行和复选框冲突,当选择某行后,再在复选框中,取消勾选,就无法取消。网上找了些资料。推荐的方法是重写CheckboxSelectionModel的handleMouseDown事件,代码如下:
Ext.override(Ext.grid.CheckboxSelectionModel, {
handleMouseDown: function(g, rowIndex, e) {
if (e.button !== 0 || this.isLocked()) {
return;
}
var view = this.grid.getView();
if (e.shiftKey && !this.singleSelect && this.last !== false) {
var last = this.last;
this.selectRange(last, rowIndex, e.ctrlKey);
this.last = last; // reset the last
view.focusRow(rowIndex);
} else {
var isSelected = this.isSelected(rowIndex);
if (isSelected) {
this.deselectRow(rowIndex);
} else if (!isSelected || this.getCount() > 1) {
this.selectRow(rowIndex, true);
view.focusRow(rowIndex);
}
}
}
});
单运行中发现,事件确实重载了,但:var isSelected = this.isSelected(rowIndex);
永远是FALSE,即使该行的复选框已经选择。导致这个功能无法实现。
请大家帮忙分析下,是什么原因导致的,有什么办法获取当前行中,CHECK是否被勾选了。
补充点:断点跟踪,rowIndex是正确的。
Ext.override(Ext.grid.CheckboxSelectionModel, {
handleMouseDown: function(g, rowIndex, e) {
if (e.button !== 0 || this.isLocked()) {
return;
}
var view = this.grid.getView();
if (e.shiftKey && !this.singleSelect && this.last !== false) {
var last = this.last;
this.selectRange(last, rowIndex, e.ctrlKey);
this.last = last; // reset the last
view.focusRow(rowIndex);
} else {
var isSelected = this.isSelected(rowIndex);
if (isSelected) {
this.deselectRow(rowIndex);
} else if (!isSelected || this.getCount() > 1) {
this.selectRow(rowIndex, true);
view.focusRow(rowIndex);
}
}
}
});
单运行中发现,事件确实重载了,但:var isSelected = this.isSelected(rowIndex);
永远是FALSE,即使该行的复选框已经选择。导致这个功能无法实现。
请大家帮忙分析下,是什么原因导致的,有什么办法获取当前行中,CHECK是否被勾选了。
补充点:断点跟踪,rowIndex是正确的。
...全文
相关推荐
ExtJs GridPanel双击事件获得双击的行
ExtJs GridPanel双击事件获得双击的行,双击行可以选中前面的checkbox,并获得行号
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
主要介绍了Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法,需要的朋友可以参考下
给Extjs的GridPanel增加“合计”行
NULL 博文链接:https://tonylian.iteye.com/blog/1735525
Extjs2.02 Gridpanel
Extjs2.02 Gridpanel加载本地数组资源的实例,思路相当清晰。对初学者很有用
Extjs 点击复选框在表格中增加相关信息行
功能效果:点击复选框在表格中自动增加相关信息行,复选框取消则表格中内容自动删除 初始效果大概是这样~~~~~ // 定义初始 存放表格数据 var gridItems = []; //省份复选框 var $provinceCheckbox01 = new Ext.form.CheckboxGroup({ xtype: 'checkboxgroup', fieldLabel: '省份选择', labelWidth: 60, columns: 9, vertical: true, margin: '10 0 0 15', defaults: { labelWidth: 80, width:


