[英]Extjs grid limit column show/hide checks
我想限制用戶檢查/取消檢查網格中的列。 這是默認的extjs
網格,我希望在beforeselect
事件或配置beforeselect
其應用於列菜單checkboxes
。 因此,如果選擇了“允許的最大列數”,並且用戶嘗試檢查更多列,則將彈出錯誤消息。
請指導我,謝謝。
我不會做這些錯誤消息之類的東西,因為錯誤消息會惹惱用戶。 當達到最大值時,我將在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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.