我正在尝试创建一个没有垂直和水平滚动条的 Extjs Grid。这意味着网格应该在两个方向上扩展到无穷大。
这是我的代码:
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.state.*'
]);
Ext.onReady(function() {
Ext.QuickTips.init();
// setup the state provider, all state information will be saved to a cookie
//Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider'));
var cols = 50;
var colsData = [];
var fields = [];
for(var i=1;i<cols;i++){
colsData.push(
{
text : 'COLUMN - ' + i,
//flex : 1,
width : 120,
sortable : true,
dataIndex: 'COL'+i
});
fields.push(
{name: 'COL'+i, type: 'int'}
);
}
var myData = [];
//create data
for(var i=1;i<500; i++){
var subData = [];
for(var j=1;j<cols; j++){
subData.push(Math.floor((Math.random()*10000)+1));
}
myData.push(subData);
}
function change(val) {
return val;
}
// create the data store
var store = Ext.create('Ext.data.ArrayStore', {
fields: fields,
data: myData
});
// create the Grid
var grid = Ext.create('Ext.grid.Panel', {
store: store,
stateful: true,
//stateId: 'stateGrid',
autoHeight: true,
autoWidth: true,
autoScroll: false,
//containerScroll: false,
columns: colsData,
//height: 100,
//width: 600,
title: 'Array Grid',
renderTo: 'grid-example',
viewConfig: {
//stripeRows: false,
//forceFit: false
}
});
});
我正在将我的网格渲染为一个 div 元素,所以实际上我不使用任何布局等。
<div id="grid-example" class="myDiv"></div>
和风格:
<style type="text/css">
body{
overflow: visible;
}
.myDiv{
display: block;
/*float: left;*/
overflow: visible;
}
</style>
这是我的浏览器屏幕截图,显示了垂直滚动条[就像我预期的那样]。
问题是
没有水平滚动条,部分列刚刚从页面中截断,无法查看它们呈现的数据。
我可以看到 extjs 尝试计算网格的高度和宽度。在高度的情况下它是正确的但对于宽度它不是,计算的宽度等于我的浏览器的宽度,而不是网格中列的总和。
我感谢您的任何建议或言论,谢谢。任何人都可以帮助我吗?