Javascript ExtJS-Ext.消息框动态高度和宽度
我有一个这样创建的消息框:Javascript ExtJS-Ext.消息框动态高度和宽度,javascript,html,extjs,Javascript,Html,Extjs,我有一个这样创建的消息框: Ext.Msg.show({ title: 'title', msg: 'some message', buttons: Ext.Msg.OKCANCEL, icon: Ext.Msg.WARNING }); 消息内容长度可变,有时会分成两行。我的要求是将消息放在一行中,因此我硬编码了消息框的宽度,如下所示: Ext.Msg.show({ title: 'title', msg: 'some message', b
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
,但当时我们的宽度
(900)不适用于topContainer
(包含msg部分)对于msgbox
,这就是为什么它的高度更高的原因
要解决此问题,我们可以在show
方法之后调用setHeight
方法,如下所示:-
msg.setHeight(msg.header.getHeight()+msg.topContainer.getHeight()+msg.bottomTb.getHeight());
注意:有关更多详细信息,请查看show
methodofframework
希望这将帮助/指导您。实际上,当调用msgbox
的show
方法时,框架调用了一个内部函数doAutoSize
,但当时我们的宽度
(900)未应用于topContainer
(包含msg部分)对于msgbox
,这就是为什么它的高度更高的原因
要解决此问题,我们可以在show
方法之后调用setHeight
方法,如下所示:-
msg.setHeight(msg.header.getHeight()+msg.topContainer.getHeight()+msg.bottomTb.getHeight());
注意:有关更多详细信息,请查看show
methodofframework
希望这将帮助/指导您。您使用的是哪个版本?extJS版本是4.1.1请检查此项。您所说的高度是多少?请勾选此项。您的示例中没有显示此行为,因为对于框架计算的初始宽度/高度,每条消息行仍将保留在一行中。您使用的是哪个版本?extJS版本是4.1.1勾选此项。您所说的高度是多少?请勾选此项。您的示例中没有显示此行为,因为对于框架计算的初始宽度/高度,每条消息行仍将保留在一行中。