【问题标题】:Extjs add div into a windowExtjs 将 div 添加到窗口中
【发布时间】:2011-03-07 11:01:57
【问题描述】:

我想通过单击一个按钮来添加一个新的 div 标签,但它不起作用。 我有一个来自 extjs 的网络桌面和两个模块。一个类似于以下代码的窗口,具有 1 个 div [20,20]。还有一个带有按钮和处理程序的第二个窗口,用于在第一个窗口中添加一个新的 div 标签。但它不起作用。

            win = desktop.createWindow({
            id: 'firstwindow',
            title: 'firstwindow',
            width: 421,
            height: 391,
            divs: [{
                x: 20,
                y: 20
            }],

等等..

这里是通过单击第二个窗口中的按钮在第一个窗口中添加 div 的代码

                handler: function(){
                    if (Ext.getCmp('firstwindow')) {

                        Ext.getCmp('firstwindow').add({
                            divs: [{
                                x: 20,
                                y: 40
                            }] 
                        })
                        Ext.getCmp('firstwindow').render();
                        console.log(Ext.getCmp('firstwindow'));
                    }
                }

提前致谢, 干杯, 托马斯

【问题讨论】:

  • 也许你应该解释一下你想用 DIV 做什么..

标签: html extjs desktop add


【解决方案1】:

您使用的 add 方法用于将 ExtJs 组件添加到容器中(在您的情况下为 Window)。您不能使用 add 方法创建 DIV 标记。

在 ExtJS 中,您可以创建一个组件并将其添加到容器中。如果需要修改 DOM,则必须更新 el 属性。默认情况下,在 ExtJS 中它是一个 DIV 标签。您可以通过 autoEl 配置覆盖它。

一个可能的解决方案:

现在,如果你想重复创建一个包含一些内容的DIV标签并动态呈现,你可以借助DataView。使用您的 DIV 及其子项创建一个模板。将数据加载到存储中并最终呈现它们或更新窗口中的 DataView。

【讨论】:

    【解决方案2】:

    我认为你必须使用 Ext.getCmp('firstwindow').doLayout() 而不是 Ext.getCmp('firstwindow').render()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多