[英]ExtJS - Ext.Msg box dynamic height and width
我有一个这样创建的消息框:
Ext.Msg.show({
title: 'title',
msg: 'some message',
buttons: Ext.Msg.OKCANCEL,
icon: Ext.Msg.WARNING
});
消息内容的长度是可变的,有时会分成两行。 我的要求是将消息放入一行,因此我将消息框的宽度硬编码为:
Ext.Msg.show({
title: 'title',
msg: 'some message',
buttons: Ext.Msg.OKCANCEL,
icon: Ext.Msg.WARNING,
minWidth: 900,
width: 900
});
这增加了框的宽度,在大多数情况下,我的消息现在可以放在一行中,这足以满足我的要求。 但是,这带来了新的问题。
如您所见,框的底部现在有一个空白区域。 如果每个新条目大于一定长度,则该空间会增加(我认为此长度是框架为框计算的原始宽度)。
我认为正在发生的事情是,该框架最初会根据提供的数据来计算高度和宽度。 但是随后宽度被我设置的新值覆盖,从而增加了框的水平长度。 但是由于高度从未得到相应的调整,因此将其保留为最初计算的值,从而导致上述行为。
一些帮助解决这个问题将不胜感激! 谢谢。
更新:正在使用的ExtJS版本是4.1.1
在这里工作
实际上,当调用msgbox
show
方法时,框架会调用一个内部函数doAutoSize
,但那时我们的width
(900)并未应用到msgbox
topContainer
(包含msg部分),这就是为什么它需要更高的height
。
要解决此问题,我们可以在show
方法之后调用setHeight
方法,如下所示:-
msg.setHeight(msg.header.getHeight()+msg.topContainer.getHeight()+msg.bottomTb.getHeight());
注意:有关更多详细信息,请查看框架的show
方法。
希望这会对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.