簡體   English   中英

ExtJS-Ext.Msg框的動態高度和寬度

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM