gpt4 book ai didi

javascript - ExtJS 使网格高度为 100%

转载 作者:数据小太阳 更新时间:2023-10-29 06:12:43 24 4
gpt4 key购买 nike

我在这里发现了 2 个类似的问题,但它们对我没有帮助,我的代码是:

var grid = Ext.create('Ext.grid.Panel', {
autoScroll: true,
// if set this to any numeric value, then everything works just good, but
// i was hoping that `ExtJS` already can detect browser window height, am i wrong ?
height: '100%',
title: 'Products',
store: store,
itemId: 'product_grid',
columns: [.. columns skipped ...],
plugins: [ rowEditing ],
dockedItems: [ ..addRow button here..]
});
var panel = Ext.create('Ext.panel.Panel', {
autoScroll: true,
items: [
{
xtype: 'productGrid'
}
]
});
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: panel
});

我需要填充整个浏览器窗口的可滚动网格,但此处的网格不会展开在高度上,所以如果网格有 0 行,那么它的高度为 0,当我按下“添加行”时,然后添加的行看起来被滚动条遮住了,这看起来很难看。

此外,当网格包含的行多于浏览器窗口无法容纳的行数时,页面滚动条就会出现(不是网格的滚动条!),这会滚动整个页面,因此按钮栏会滚动消失,这也是不受欢迎且丑陋的。

知道我的设置有什么问题吗。

更新:

终于修好了,中间面板也应该包含layout: 'fit'

最佳答案

您可以在这里做几件事。首先,在视口(viewport)上使用 fit 布局,因为它会强制其子组件填充可用空间。其次,网格是面板。您不需要在面板中嵌套网格,而且可能也不应该。

autoScroll 配置不适用于网格。默认情况下启用双向滚动,但如果您需要更改它,请使用 scroll 属性。最后,height 配置仅采用数字,不适用于字符串或百分比。如果您指定一个高度,它会覆盖布局管理器给定的任何高度,并且您不需要它来实现 fit 布局。

var grid = Ext.create('Ext.grid.Panel', {
title: 'Products',
store: store,
itemId: 'product_grid',
columns: [/* ... */],
plugins: [rowEditing],
dockedItems: [/* ... */]
});

var viewport = Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: [grid]
});

关于javascript - ExtJS 使网格高度为 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com