Extjs将div添加到窗口中

发布于 2024-10-20 09:48:26 字数 981 浏览 4 评论 0原文

我想通过单击按钮添加新的 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'));
                    }
                }

提前致谢, 干杯, 托马斯

i would like to add a new div tag by clicking a button, but it doesnt work.
I have a web desktop from extjs and two modules. One window like the following code, with 1 div [20,20]. And a second window with a button and handler to add a new div tag in the first window. But it doesnt work.

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

and so on..

and here the code for adding a div in the firstwindow by clicking button in the second window

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

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

Thanks in advance,
cheers,
Thomas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光暖心i 2024-10-27 09:48:26

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

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

一个可能的解决方案:

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

The add method you are using is used to add a ExtJs component into the container (in your case its Window). You cannot create a DIV tag using the add method.

In ExtJS you can create a component and add it to the container. If you need to modify the DOM, you will have to update the el property. By default, in ExtJS its a DIV tag. You can override this by the autoEl config.

A possible solution:

Now, If you want to repeatedly create a DIV tag with some content in it and rendered dynamically, you can take the help of DataView. Create a Template with your DIV and its child.. load data into the store and finally render them or update DataView in your window.

半透明的墙 2024-10-27 09:48:26

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

I think you must use Ext.getCmp('firstwindow').doLayout() instead of Ext.getCmp('firstwindow').render()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文