如何在extjs 3网格面板中显示/隐藏列

xrx*_*215 11 extjs extjs3

我有一个网格面板我需要显示/隐藏网格面板中的列,具体取决于复选框的值.如果选中该复选框,我需要在网格中显示列,如果未选中,我需要隐藏网格中的列.

这是我的代码

var chkEnableDisplayResponsibilityForAction = '<%=Session["chkEnableDisplayResponsibilityForAction"]%>';

 var flags = Boolean.parse(chkEnableDisplayResponsibilityForAction);
 var flags1 = !Boolean.parse(chkEnableDisplayResponsibilityForAction)

 var colModel = new Ext.grid.ColumnModel([
 { header: "PricePlanID", width: 100, sortable: true, dataIndex: 'PricePlanID', hidden: flags, hideable: flags1 },
  ]);  
Run Code Online (Sandbox Code Playgroud)

当我刷新页面时,我无法切换列,具体取决于复选框的值.但是当我登录并注销时,我能够看到网格面板中的更改.任何人都可以帮我刷新网格面板中的列值吗?

Rag*_*geZ 24

如果看一下ExtJS API,特别是ColumModel有一个setHidden方法,它会隐藏/显示一个列GridPanel.

myGrid.getColumnModel().setHidden(0, true);
Run Code Online (Sandbox Code Playgroud)

您还应该onchange勾选复选框的事件,以便显示或隐藏列


Tom*_*Tom 12

在Ext JS 4.1中,要隐藏列,请使用:

grid.columns[0].setVisible(false);
Run Code Online (Sandbox Code Playgroud)

看起来getColumnModel()及其setHidden()方法不再是网格的一部分:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel

  • 简写:grid.columns [0] .hide()http://docs.sencha.com/ext-js/4-1/source/AbstractElement.html#Ext-dom-AbstractElement-method-hide (3认同)