可能的错误 - 在将小部件添加为子级时,dijit / layout / ContentPane不会调整大小

时间:2017-05-11 13:40:46

标签: javascript dojo dijit.form

在将小部件添加为子级时,窗口小部件dijit/layout/ContentPane无法正确调整大小。

重现问题的步骤:

  1. https://jsfiddle.net/9eja3jtr/
  2. 打开测试用例
  3. 点击10次按钮“多次点击我!”。
  4. 问题:

      将小部件添加为子级时,
    • dijit/layout/ContentPane不会调整大小。 插入的内容不完全可见。

    我需要增加dijit/layout/ContentPane的维度,以便容纳新添加的小部件,以便所有内部小部件都可见。

    我认为这是dijit小部件中的一个错误。我想知道一个解决方法,如果有的话。

    注意: 我已经向dojo https://bugs.dojotoolkit.org/ticket/19021

    报告了错误
    require(["dijit/layout/ContentPane", "dijit/TitlePane", "dijit/form/Button", "dojo/domReady!"], function(ContentPane, TitlePane, Button) {
      this._contentPanel = new ContentPane({
        style: "background-color:red;"
      }, "contentPanel");
    
      this._titlePanel = new TitlePane({
        title: "I'm a TitlePane",
        content: "Collapse me!"
      }, "titlePanel");
    
      this._button = new Button({
        label: "Click me many times!",
        onClick: function() {
          this._titlePanel.addChild(new Button({
            label: "Test",
            style: "width: 250px"
          }));
        }.bind(this)
      }, "button");
    
      this._contentPanel.addChild(this._titlePanel);
      this._titlePanel.addChild(this._button);
      this._contentPanel.startup();
    });
    

2 个答案:

答案 0 :(得分:2)

我认为您希望将ContentPane的doLayout标志设置为false。然后它不会在嵌套的ContentPane上设置大小。另外,删除硬编码的125px高度。

答案 1 :(得分:0)

您可以通过CSS进行简单的解决方法:

#titlePanel {
  height: auto !important;
}

请参阅https://jsfiddle.net/9eja3jtr/3/