ExtJS panel append html
ExtJS panel append html
我使用这个配置对象创建了一个extjs4面板。
{
title : 'Messages',
region : 'north',
height : 200,
minSize : 75,
maxSize : 250,
cmargins : '0 0 5 0',
html : '<i>Chat started on ' + Ext.Date.format(dt, EI.datePattern) + '</i>'
}
现在我想在上面添加更多的html。例如,我想添加
<p><span class="user">me:</span><span class="how are you?"></span></p>
有时我可以使用进行附加
thePanel.body.insertHtml("beforeEnd", chatHtml);
但我看到有时.body
没有设置!!所以我不能执行上面的代码。做这件事的正确方法是什么?
只有在面板的渲染事件启动后,面板的主体元素才可用。这对于任何组件的childEls
配置下列出的所有元素都是一样的。
元素有几种不同的渲染方式。这不是一个全面的列表。
-
如果组件是容器的子项,则在父容器渲染时将渲染该组件。使用
deferredRender
配置时,使用卡布局(如选项卡面板)的容器除外。 -
如果组件不是容器的子级,但它使用
renderTo
配置,则它将在构建时呈现,即使它是隐藏的。 -
如果非浮动组件使用
autoRender
配置,则该组件将在第一次显示时进行渲染,例如使用panel.show()
。如果它同时使用autoRender
和autoShow
,那么它将在构建时进行渲染。 -
浮动组件(如窗口)默认为
autoShow: false
和autoRender: true
,因此在调用win.show()
之前不会进行渲染。如果将autoShow
设置为true,则它将在创建时渲染。 -
使用
renderTo
配置的浮动组件将在创建时渲染并保持隐藏,除非也使用如上所述的autoShow
。
听起来你有一个窗户的子面板,对吗?若要使该面板立即渲染但保持隐藏,请在父窗口上设置renderTo: Ext.getBody()
。
或者,在渲染面板之前,您仍然可以访问panel.html
属性,并且任何更改都将在显示窗口时反映出来。因此,如果你需要访问内部内容,但不能保证面板已经渲染,你可以这样做:
if (panel.body) {
panel.body.insertHtml("beforeEnd", chatHtml);
} else {
panel.html += chatHtml;
}
最后一件事。如果设置面板的html
配置,然后对其进行渲染,那么在原始内容之后将有一个额外的div,称为clearEl
。在render之后调用panel.body.insertHtml()
会将新的HTML放在这个div之后。这对你来说可能是个问题,也可能不是个问题,但我想我无论如何都会提到它。
尝试使用Panel.getTargetEl()
来源:
getTargetEl: function() {
var me = this;
return me.body || me.protoBody || me.frameBody || me.el;
}
- datatable append html,但已刷新
- JQuery无法通过.append()或追加HTML.HTML()
- ExtJS panel append html
- 在 Jquery append 之后立即渲染 html
- Jquery ajax append html file based on url
- 是否可以用php条件解析jQuery.append中的Html
- 在使用append()后,美化html输出
- 从 html.append 追加的 html 下拉列表中获取返回值
- 在append中阻止html
- css未应用于使用jQuery.append()创建的html元素
- Jquery append html weird behavior
- Jquery append and html
- jQuery append - html write不会触发其他事件
- .html 和 .append 不对来自 C# 的动态 HTML 进行编码
- jQuery:.append 或 .appendTo PHP 到 HTML 标记中的元素
- 如何在 jQuery 中使用 $(“body”).append() 添加多个 HTML 代码
- How append html in a <div>
- Chrome在.html()/.append()上崩溃
- Jquery HTML append输出多余的引号
- Jquery html append prepend在一行中