Extjs将div添加到窗口中

时间:2011-03-07 11:01:58

标签: html extjs desktop add

我想通过点击一个按钮添加一个新的div标签,但它不起作用。 我有一个来自extjs的web桌面和两个模块。一个窗口,如下面的代码,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'));
                    }
                }

提前致谢, 干杯, 托马斯

2 个答案:

答案 0 :(得分:1)

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

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

可能的解决方案:

现在,如果要重复创建包含某些内容并动态呈现的DIV标记,可以使用DataView的帮助。使用您的DIV及其子项创建模板..将数据加载到商店中,最后在窗口中呈现它们或更新DataView。

答案 1 :(得分:0)

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