我有一个这样创建的消息框:
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
工作小提琴here
答案 0 :(得分:1)
实际上,当调用show
的{{1}}方法时,框架调用了一个内部函数msgbox
,但那时我们的doAutoSize
(900)并未应用于width
的{{1}}(包含味精部分),这就是为什么它需要更高的topContainer
。
要解决此问题,我们可以在msgbox
方法之后调用height
方法,如下所示:-
setHeight
注意:有关更多详细信息,请遍历show
框架方法。
希望这会帮助/指导您。