タイトルと小さな要約グリッドも保持するパネルに含まれるデータを含むグリッドがあります。パネルはレイアウトに適合しているため、タイトルと最初のグリッド (要約グリッド) は問題なく表示されます。しかし、問題のグリッドには、画面に表示できるよりも多くのレコードがあり、そのコンポーネントの高さは、ブラウザー ウィンドウの高さに常に収まるパネルのサイズに調整されていません。
私が望むのは、パネルのようなグリッドコンポーネントの高さを親に合わせて調整し、グリッド本体内のスクロールバーが表示されるようにすることです。
私のコードはこれに似ています (initComponent は Ext.panel.Panel の拡張です): (このコードのヘッダーは要約グリッドを意味します)
initComponent: function (config) {
var config = {
border: false,
hidden: false,
hideMode: "display",
padding: '5',
layout: "fit"
}
Ext.apply(this, Ext.apply(this.initialConfig, config));
this.callParent(arguments);
title = Ext.create("Ext.panel.Panel", {
html: '<h2>title</h2>',
padding: '5',
border: false
});
// the stores for the grids are created here
var storeHdr = DataStoreFactory.CreateStore("GetHeaderP", DataStoreFactory.fieldsCollection.Default);
var storeBdy = DataStoreFactory.CreateStore("GetBodyP", DataStoreFactory.fieldsCollection.Default);
var grdHeader = Ext.create("Ext.grid.Panel", {
store: storeHdr,
columns: getHeaderColumns(),
columnLines: true,
autoHeight: false,
autoWidth: false,
enableHdMenu: false,
enableColumnMove: false,
enableColumnResize: false,
disableSelection: true,
trackMouseOver: false,
sortable: false
});
var grdBody = Ext.create("Ext.grid.Panel", {
id: id,
store: storeBdy,
columns: getBodyColumns(),
columnLines: true,
autoHeight: false,
autoWidth: false,
autoScroll: true,
scroll: "vertical",
enableColumnMove: false,
enableColumnResize: false,
enableHdMenu: false,
trackMouseOver: false,
disableSelection: true
});
},
var headerGridContainer = Ext.create("Ext.panel.Panel", {
layout: "fit",
border: false,
items: [grdHeader]
});
var bodyGridContainer = Ext.create("Ext.panel.Panel", {
layout: "fit",
border: false,
items: [grdBody]
});
this.add(title);
this.add(headerGridContainer);
this.add(bodyGridContainer);
storeHdr.load();
storeBdy.load();
this.doLayout();
}
誰かがこれで私を助けてくれることを願っています。前もって感謝します
編集 - それがどのように、どのようにあるべきかのスクリーンショット。リアルタイム データは非公開であり、問題には関係ないため、削除または消去されます。
これがその方法です
これがどうあるべきか