Extjs将div添加到窗口中
我想通过单击按钮添加新的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在使用的 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.
我认为你必须使用 Ext.getCmp('firstwindow').doLayout() 而不是 Ext.getCmp('firstwindow').render()
I think you must use Ext.getCmp('firstwindow').doLayout() instead of Ext.getCmp('firstwindow').render()