Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS-Ext.消息框动态高度和宽度_Javascript_Html_Extjs - Fatal编程技术网

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勾选此项。您所说的高度是多少?请勾选此项。您的示例中没有显示此行为,因为对于框架计算的初始宽度/高度,每条消息行仍将保留在一行中。