gpt4 book ai didi

javascript - ExtJS - Ext.Msg 框动态高度和宽度

转载 作者:行者123 更新时间:2023-12-01 01:47:43 24 4
gpt4 key购买 nike

我有一个像这样创建的消息框:

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
});

这增加了框的宽度,对于大多数情况,我的消息现在可以放入一行,这足以满足我的要求。然而,这引入了一个新问题。

enter image description here

正如您所看到的,现在有一个空白区域被添加到框的底部。如果大于一定长度,则该空间会随着每个新条目而增加(我认为该长度是框架为框计算的原始宽度)。

我认为正在发生的是,框架最初根据提供的数据计算高度和宽度。但随后宽度会被我设置的新值覆盖,从而增加了框的水平长度。但由于高度从未相应调整,因此它保留为其最初计算的值,从而导致上述行为。

如果能提供一些帮助来解决这个问题,我们将不胜感激!谢谢。

更新:使用的ExtJS版本是4.1.1

工作 fiddle here

最佳答案

实际上,当msgboxshow方法被调用时,框架调用了一个内部函数doAutoSize,但当时我们的 width (900) 不适用于 msgboxtopContainer(包含 msg 部分),这就是它采用更高 height 的原因.

要解决此问题,我们可以在 show 方法之后调用 setHeight 方法,如下所示:-

msg.setHeight(msg.header.getHeight()+msg.topContainer.getHeight()+msg.bottomTb.getHeight());

Working Fiddle

注意:更多详细信息请通过框架的show方法。

希望这能帮助/指导您。

关于javascript - ExtJS - Ext.Msg 框动态高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com