2012-09-17 68 views
2

我在Extjs4.0中使用border布局。它在那里工作得很好。当我将库升级到extjs4.1时,它显示的错误如layout run failed,并且面板未加载。我没有遇到这样的错误,所以帮我解决这个错误。布局运行失败Extjs

我的代码是提前

Ext.define('TextFit', { 
    extend : 'Ext.container.Container', 
    title: 'Sample text', 
    layout: { 
     type : 'border' 
    }, 
    items : [{ 
     title : 'left panel', 
     region : 'west' 
    },{ 
     title : 'Center panel', 
     region: 'center' 
    }] 
}); 

感谢。

+1

我跑这个代码,但我没有得到任何错误。当你得到这个错误? – Wilk

+0

也许你可以看看这个答案,解释为什么布局可能会失败:[链接](http://stackoverflow.com/questions/11533769/understanding-layout-run-failure-error-logging) –

回答

0

尽量弯曲属性添加到这两个项目...所以修改后的代码将

.... 

items : [{ 
    title : 'left panel', 
    region : 'west', 
flex:1 //add here 
},{ 
    title : 'Center panel', 
    region: 'center', 
flex:1 //and here 
}] 

......

0

你可以尝试使用:

<script type="text/javascript" src="extjs/src/diag/layout/Context.js"></script> 
<script type="text/javascript" src="extjs/src/diag/layout/ContextItem.js"></script> 

只需将它放在index.html中,然后检查控制台以查看是否有任何错误。 不要介意你看到的大部分警告。

如果出现如下错误:“...仍然连接/连接”,请查看该项目并确保其具有锚点以外的布局。

如果您在控制台中没有任何错误并且仍然存在布局问题,则可以尝试使用页面分析器。

您应该能够在extjs zip中找到分析仪。 如果它部署在服务器上,你可以去:HTTP:// <服务器地址> /extjs/examples/page-analyzer/page-analyzer.html

9

尝试增加

layout: 'fit' 

要你的边框布局的父容器。我有同样的问题,这解决了我的问题。

+0

谢谢!这也是我的问题。 –

+0

同样的问题,我正在经历。谢谢 –

2

从BorderLayout的文档:

  • 用西部或东部的区域的任何子项目可以与任一初始宽度,或Ext.layout.container.Box.flex值,或初始百分比被配置宽度字符串(将其简单除以100并用作弹性值)。 “中心”区域的弹性值为1.

同样适用于北部和南部,但高度不是宽度。

+0

这就是它失败的原因。只需在西面板上添加宽度或设置柔性 –

1

我在尝试在渲染面板之前将一组复杂的(深嵌套)项目添加到面板时遇到此问题。一旦我添加后,面板知道它的尺寸,它的工作原理:

addItems: function() { 
    this.on("boxready", function(){ this.add(items); }, this, {single: true}); 
}