このように4つのグリッドを配置したいウィンドウがあります
Grid1 Grid2
Grid3 Grid4
ウィンドウのサイズ変更時にグリッドのサイズを自動的に変更したい。
上記の例で行ったように、hbox/vbox レイアウトを組み合わせてこれを行うのは簡単です。
Ext.onReady(function () {
var me = this;
me.store = Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{ 'name': 'Lisa', "email":"lisa@simpsons.com", "phone":"555-111-1224" }
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
me.g1 = Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
flex: 1,
store: me.store,
columns: [
{ header: 'Name', dataIndex: 'name' },
{ header: 'Email', dataIndex: 'email', flex: 1 },
{ header: 'Phone', dataIndex: 'phone' }
]
})
//g2,g3,g4 same with g1
Ext.create('Ext.window.Window', {
title: 'Hello',
height: 400,
width: 600,
maximizable: true,
layout: 'fit',
items: [{
xtype: 'container',
layout: 'fit',
items: [{
xtype: 'container',
layout: {
type: 'vbox',
align: 'stretch'
},
items:[{
flex: 1,
xtype: 'container',
layout: 'hbox',
items:[me.g1, me.g2]
},{
flex: 1,
xtype: 'container',
layout: 'hbox',
items:[ me.g3, me.g4]
}]
}]
}]
}).show()
});
Chrome ではすべて正常に動作しますが (ウィンドウは 1 秒で開きます)、Internet Explorerではウィンドウのレンダリングに 3 ~ 5 秒かかるため、長すぎます。
また、これらの 4 つのグリッドを左右にフロートさせようとしたところ、IE でのレンダリングが大幅に改善されましたが、その方法ではグリッドの自動スクロールが失われ (それぞれを適切なコンテナーに配置しない限り...)、レコードをクリックするとグリッドが表示されますピクセル数が上がります(〜20px)
3〜5秒のレンダリングなしで、IEでもうまく機能するようにする方法についてのアイデアはありますか?
ExtJs 4.0.7 を使用しています。
PS: 問題はグリッド ストアのロードではなく、コールバックで発生します。