1

Extjs4.1グリッドパネルを使用しています。

グリッドから列を非表示にする方法を探しています。setHiddenを使用できますが、ユーザーは列ヘッダーのメニューから列を再度「再表示」できます。隠れるプロパティはそれをカットしないようです...

4

5 に答える 5

1

次の構成を列に使用します

hidden: true, hideable: false

「grid.headerCt.getGridColumns()」

上記のメソッドを使用してすべてのグリッド列を取得し、 hide() および show() を使用して特定の列を表示します

これはExt js 4.1で動作します

于 2013-03-04T11:05:05.443 に答える
1

Ok。最終的に私はこれを行いました:グリッドの「afterrender」イベントで:

var header = pnl.down("headercontainer");
if(header != null && header["getMenu"] != null)
{
   var menu=header.getMenu();
   menu.on('beforeshow',function(sender,eOpts){

            var menu=sender;
            if(!menu.items.containsKey("columnItem"))
            {
                return;
            }

            var columnsSubMenuItem=menu.items.getByKey("columnItem");
            var columnsCheckboxes=columnsSubMenuItem.menu.items["items"];

            // More code here...
            // See the pseudo code
   });
}

今、私はちょうど列をループし、ifcheckbox.text == column.get_Title() && column.get_Hideable() == true thencheckbox.Show()elsecheckbox.Hide();

(疑似コードで申し訳ありません。C#からjavascriptへのコンバーターであるSharpkitを使用しているため、コードをコピーして貼り付けると、説明が難しくなります。

注: グリッドの enableColumnHide イベントでも同じことができます。

于 2012-11-15T13:12:28.510 に答える
0

列でsetVisible(false | true)を使用します。 doc

于 2012-10-25T16:28:32.013 に答える
0

シナリオごとにグリッドを再構成します。APIヒントへのリンク

于 2012-10-18T18:19:26.953 に答える
0

initComponent メソッドで columns プロパティを設定し、必要な列のみを this.columns 配列に挿入できます。

于 2012-10-18T08:50:54.143 に答える