通常,我创建默认的gridpanel,比如新的GridPanel(xxx,480,200,1,5),我可以通过GridPanel构造函数中的第一个参数来控制应该隐藏哪一列。
例如,我创建了如下所示的网格面板,并希望隐藏名为description的列。
public static xxx[] grdFundOutputs = {
new xxx("ID", "id", Integer.class, 50),
new xxx("Name", "name", String.class, 100),
new xxx("Description", "description", String.class, 150,true),//true represent hidden
new xxx("Amount", "amount", Float.class, 70),
};
public static GridPanel createGrid(){
return new GridPanel(grdFundOutputs, 480, 200, 1, 5);
}注意事项:我使用xxx表示类名,因为由于我的公司对gwt-ext的扩展,所以我不能向公众公开它。
我的要求是,我不希望用户能够通过单击复选框重新显示隐藏列,就像图像中的以下操作一样。

我如何实现这个要求,因为gwt-ext,我认为很难改变ext-j的方式,我希望在类GridPanel中添加一个函数,这样开发人员就可以调用它来隐藏复选框。
谢谢。
发布于 2012-12-13 05:59:55
我可以将这个方法添加到我自己的代码中,并在网格面板的构造之前调用它。
private native void unableHiddenReShown()/*-{
$wnd.Ext.override($wnd.Ext.grid.GridView, {
beforeColMenuShow : function(){
var cm = this.cm, colCount = cm.getColumnCount();
this.colMenu.removeAll();
for(var i = 0; i < colCount; i++){
if(cm.config[i].fixed !== true && cm.config[i].hideable !== false && !cm.isHidden(i) //!cm.isHidden(i) was added to solve this problem){
this.colMenu.add(new $wnd.Ext.menu.CheckItem({
id: "col-"+cm.getColumnId(i),
text: cm.getColumnHeader(i),
checked: !cm.isHidden(i),
hideOnClick:false,
disabled: cm.config[i].hideable === false
}));
}
}
}
});
}-*/;https://stackoverflow.com/questions/13834920
复制相似问题