【问题标题】:ExtJS FormPanel Only Rendered to Panel the First time it is SelectedExtJS FormPanel 仅在第一次被选中时渲染到面板
【发布时间】:2011-05-13 04:36:26
【问题描述】:

我的表单面板需要根据 XML 树结构中的选择来呈现。但是,我的特定节点的表单面板仅在第一次呈现。当我将选择更改为其他内容并返回到原始选择时,表单面板不会重新呈现。

当我有一个简单的 Ext.Template 并且我做到了之前,它根据选择正确呈现

var temp = Ext.getCmp('details-panel').body;

然后

(Ext.Template 的名称).overwrite(temp, node.attributes).

当我将此覆盖行更改为

(Form Panel 的名称).render(temp),它只在第一次工作。

知道我错过了什么吗?谢谢!

【问题讨论】:

  • 您真的需要在每次选择更改时重新渲染整个表单面板吗?为什么不只更新表单的字段值?

标签: extjs


【解决方案1】:

一个组件在ExtJS中只会渲染一次,之后你需要在添加和删除子组件后使用doLayout()。

formPanel.doLayout();

【讨论】:

    【解决方案2】:

    我不确定我是否完全理解。我基本上有

        tp.getSelectionModel().on('selectionchange', function(tree, node){
              var el = Ext.getCmp('temp-panel').body;
              el.update("");
               if(node && node.....){
                    myForm.render(el);
               }
    

    我希望根据我单击的节点显示不同的表单面板。因此,在 if (node && ...) 块中,每次我将选择切换到该节点时,我都需要渲染一个特定的表单面板。现在它只是第一次发生。调用 myForm.doLayout() 会解决这个问题吗?

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2011-02-22
      • 1970-01-01
      • 2010-12-18
      • 2021-10-04
      • 2019-01-13
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多