我想限制用户检查/取消选中网格中的列。这是一个默认的Picasso.with(context).load(uri).error(R.drawable.default_image).into(imageview);
网格,我希望将extjs
事件或配置上的内容应用于列菜单beforeselect
。因此,如果选择了max allowed columns并且用户尝试检查更多列,则会弹出错误消息。
请提前指导我。
答案 0 :(得分:0)
我不会做那个错误消息的东西,因为错误消息让用户烦恼。当达到最大值时,我会在columnshow
事件中禁用未经检查的列,如下所示:
var doCheckItems = function() {
var showncolumns = Ext.Array.sum(grid.headerCt.query("gridcolumn").map(function(column) {return column.isVisible()?1:0;}));
if(showncolumns >= 5) {
Ext.each(grid.headerCt.getMenu().query("menucheckitem"),function(item) {
if(!item.checked) item.disable();
})
} else {
Ext.each(grid.headerCt.getMenu().query("menucheckitem"),function(item) {
item.enable();
})
}
};
grid.headerCt.on('columnshow',doCheckItems);
grid.headerCt.on('columnhide',doCheckItems);
https://fiddle.sencha.com/#fiddle/1fkj
但如果您仍然想要,可以绑定beforecheckchange
上的menucheckitems
事件:
var doCheckChange = function() {
var showncolumns = Ext.Array.sum(grid.headerCt.query("gridcolumn").map(function(column) {return column.isVisible()?1:0;}));
if(showncolumns >= 5) {
Ext.Msg.alert('Error','Too many columns checked');
return false;
}
};
Ext.each(grid.headerCt.getMenu().query("menucheckitem"),function(item) {
item.on('beforecheckchange', doCheckChange);
});