ExtJS GridPanel加上复选框之后,行选中问题

zhangweitaylor zhangweitaylor 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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是正确的。
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
zhangweitaylor
JavaScript 87,983 成员 224,681 内容