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

zhangweitaylor 2014-01-08 12:33:19
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是正确的。
...全文
587 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangweitaylor 2014-06-23
  • 打赏
  • 举报
回复
reflector反编译出来的全都是空函数,是通过工具加密过的,似乎没有办法解决
Celeron667 2014-01-08
  • 打赏
  • 举报
回复
兄弟,我想问你一下,你在09年问了一个问题,用reflector反编译出来的全都是空函数,只有函数名和参数,没有具体实现,全是return,请问现在得到答案了吗?跪求用的哪种混淆工具,谢谢!
lzpggg 2014-01-08
  • 打赏
  • 举报
回复

没看到有什么冲突?不要水边就override,把你的代码精简以后贴上来瞧瞧。

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧