刚才纠结的调整新项目的页面,其中的一个gridpanel一直没有办法正确显示html
先上背景sql
var reviewTaskPaenl = new Ext.Panel({ layout:'border', items:[ { region:'north', height:300, layout:'fit', items:{ title:'文件列表', border:false, items:[ reviewFilePanel ] } } , { region:'center', layout:'fit', items:{ border:false, items:[ sqlStatementTabPanel ] } } ], tbar:taskHandlePanel });
外层的panel是border类型的,内部三个部分,顶部是tbar栏,而后是filepanel,接下来是statementpanel
filepanle是一个gridpanel布局
var reviewFilePanel = new Ext.grid.GridPanel({ cm:reviewFileStoreCm, store:reviewFileStore, stripeRows:true, loadMask:true, trackMouseOver:true, //bodyStyle:"height:100%;width:100%", autoScroll:true });
现象就是下图这样
试了各类布局都很差使,网上的解决方案是在最外层的panel中使用viewport,而后viewport用fit布局,内部在嵌入gridpanel,是能够自适应了,可是viewport就是整页都显示一个paenl了。code
最终的解决方案是在gridpaenl中加bodystyle,经过CSS来调整htm
var reviewFilePanel = new Ext.grid.GridPanel({ cm:reviewFileStoreCm, store:reviewFileStore, stripeRows:true, loadMask:true, trackMouseOver:true, bodyStyle:"height:100%;width:100%", autoScroll:true });
最终终于实现了要求
总结一下,EXT的layout其实挺讨厌的,以前没有作个swing的程序,一直都是用div或者table来布局,这两天画界面各类纠结。ext的文档上有一些经常使用的布局和demo,没事的时候多看看。ip
http://dev.sencha.com/deploy/ext-3.4.0/examples/layout-browser/layout-browser.html 文档