如何使 titlePane 的高度动态化,以便在页面加载后将内容添加到 Pane 中,TitlePane 将展开?

最佳答案

看起来丰富的内容编辑器是一个异步加载的 iframe 会混淆初始布局。

正如@missingno 提到的,调整大小功能是您想要查看的。

如果您在 your page 上执行以下函数,您可以看到它确实正确调整了所有内容的大小:

//iterate through all widgets
dijit.registry.forEach(function(widget){
    //if widget has a resize function, call it
    if(widget.resize){
        widget.resize()
    }
});

上述函数遍历所有小部件并调整所有小部件的大小。这可能是不必要的。我认为您只需要在 dijit.Editor 初始化后在每个与布局相关的小部件上调用它。

在实际页面上执行此操作的最简单方法可能是将其添加到您的 addOnLoad 函数中。例如:
    dojo.addOnLoad(function() {
        dijit.byId("ContentLetterTemplate").set("href","index2.html");
        //perform resize on widgets after they are created and parsed.
        dijit.registry.forEach(function(widget){
              //if widget has a resize function, call it
              if(widget.resize){
                  widget.resize()
              }
        });
    });

编辑:该问题的另一个可能解决方法是将内容 Pane 上的 doLayout 属性设置为 false。默认情况下,所有 ContentPane(包括 TitlePane 和 dojox.layout.ContentPane 等子类)都将此属性设置为 true。这意味着 ContentPane 的大小是预先确定的和静态的。通过将 doLayout 属性设置为 false,ContentPanes 的大小将随着内容变大或变小而有机地增长。

关于道场/Dijit TitlePane,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7447507/

10-11 14:34