ビューポートのレイアウトに対するEXT JSには何も表示されません

StackOverflow https://stackoverflow.com/questions/1630513

  •  06-07-2019
  •  | 
  •  

質問

ページ全体をリロードせずに既存のコンテナに新しいコンポーネントを追加することに関する多くの例を読んだ後、ビューポートコンポーネント内でツリーとタブを組み合わせているときに小さな問題にぶつかります。

私がやろうとしているのは、クリックイベントでツリーノードに登録し、ノードコンテナの新しいコンポーネントをロードすることです。ノードのタイプによっては、tabpanel、gridpanel、または他の使用可能なコンポーネントです。

ツリーオブジェクトの短い例:

{
    xtype: 'treepanel',
    id: 'tree-panel',
    listeners: {
        click: function(n) {

            var content = Ext.getCmp('content-panel');

            content.setTitle(n.attributes.qtip);

            //remove all components from content-panel
            content.removeAll();

            content.add(dummy_tabs2);

            content.doLayout();

            return;
        }
    }
}

すべてのDOM操作が正常に行われ、すべてが適切に登録され、新しいタイトルが表示されましたが、dummy_tabs2は表示されていません。 doLayout(true | false、true | false)のさまざまなプロパティを設定しようとしましたが、何も起こりません。

何か間違ったことをしていますか?

役に立ちましたか?

解決

これでわかりましたが、DOMは正常に機能しますが、EXTJSは表示されないプロパティを新しく挿入された要素に適用します。したがって、あとはshow()関数を新しいコンポーネントに適用するだけです。次のコードは次のようになります。

{
  xtype: 'treepanel',
  id: 'tree-panel',
  listeners: {
    click: function(n) {

    var content = Ext.getCmp('content-panel');

    content.setTitle(n.attributes.qtip);

    //remove all components from content-panel
    content.removeAll();

    var container = content.add(dummy_tabs2);

    content.doLayout();

    container.show();

    return;
    }
}}

他のヒント

doLayoutの前にdummy_tabs2の幅と高さを設定してみてください。 firebugで調べてください。パネルはあるかもしれませんが、見えません。

API でExt.Panelを読みます。

  

の子アイテムを指定する場合   パネル、または動的に追加   パネルのコンポーネント、忘れずに   パネルにどのようにしたいかを検討する   それらの子要素を配置し、   それらの子要素が必要かどうか   Extの組み込みのいずれかを使用してサイズを調整する   レイアウトスキーム。デフォルトでは、Panelsは   ContainerLayoutスキーム。この   単に子コンポーネントをレンダリングし、   それらを次々に追加する   コンテナ内にありません   サイズ設定を適用します。

これが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top