12

チェックボックスの値に応じて、グリッドパネルの列を表示/非表示にする必要があるグリッドパネルがあります。チェックボックスがオンになっている場合はグリッドに列を表示する必要があり、チェックボックスがオフになっている場合はグリッドに列を非表示にする必要があります。

これが私のコードです

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 },
  ]);  

ページを更新すると、チェックボックスの値に応じて列を切り替えることができません。しかし、ログインしてログアウトすると、グリッドパネルで変更を確認できます。グリッドパネルの列の値を更新するのを手伝ってくれる人はいますか?

4

6 に答える 6

25

ExtJS API、特にメソッドがあるColumModelsetHiddenを見てみると、GridPanel.

myGrid.getColumnModel().setHidden(0, true);

onchange列を表示または非表示にできるように、チェックボックスのイベントもフックする必要があります

于 2009-11-25T15:29:27.260 に答える
13

Ext JS 4.1 で列を非表示にするには、次を使用します。

grid.columns[0].setVisible(false);

getColumnModel() とその setHidden() メソッドがグリッドの一部ではなくなったようです: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel

于 2012-07-25T12:18:22.273 に答える
3

列ヘッダー メニューを使用して列を表示/非表示にすることができます。表示する列を選択できます。とにかく、列を表示/非表示にしたい場合は、これを試してください

myGrid.getColumnModel().setHidden(0, true);
于 2009-11-25T15:30:06.900 に答える
2

ExtJS 4 では、グリッド パネルにアクセスし、Column オブジェクトの配列である columns 属性にアクセスします。

そこから、配列反復子メソッド ( http://www.diveintojavascript.com/core-javascript-reference/the-array-object ) を使用してアクションを実行できます。

以下の例では、ヘッダー名に基づいていくつかの列を非表示および表示していますが、任意の列属性に基づいてアクションを実行できることは明らかです。

var grid = Ext.getCmp( 'my_grid_panel' );

grid.columns.forEach( function( col ) {
   if( ( col.text == "Foo" ) || ( col.text == "Bar" ) ) {
      col.setVisible( true );
   } else if( col.text == "Baz" ) {
      col.setVisible( false );
   }
});
于 2012-07-25T15:46:09.407 に答える
1

上記の答えはかなり良いと思います。しかし、アドバイスをさせてください。

1) ExtJS 4.xでは、 Ext.getCmp()の代わりに Ext.ComponentQuery のメソッド使用することをお勧めします。

2)グリッドの列を非表示/表示するには、次のコードを使用できます

Ext.ComponentQuery.query('grid gridcolumn[dataIndex^="service"]')[0].hide()

または表示する

Ext.ComponentQuery.query('grid gridcolumn[dataIndex^="service"]')[0].show()

グリッド内の列の非表示/表示を解決する必要があります。

ここでgridはあなたの grid です。おそらく id や xtype などです。

于 2016-08-16T09:00:39.170 に答える