[英]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.