2010-02-23 73 views
1

如何根据窗口大小调整网格面板大小。我已经给出了 viewconfig { forcefit:true }但在Internet Explorer中,网格面板不会缩放带有窗口大小的 。网格调整大小问题

请帮我在这个问题:

var grid = new Ext.grid.GridPanel({ 
    store : store, 
    colModel : colModel, 
    view  : gv, 
    stateId : 'myGridid',    
    stateful : true,  
    plugins : [filters],   
    autoHeight : true,    
    stripeRows : true,   
    id   : 'my-grid', 
    title  : xppo.st('SDE_PRINTERS'),   
    viewConfig : { forceFit: true },   
    tbar  : tb, 
    listeners: { 
    cellclick: function(grid, rowIndex, colIndex, e) { 
     colClicked = colIndex; 
     if (colClicked != 0) { 
     if (grid.getColumnModel().getDataIndex(grid.getColumnModel().getColumnId(colIndex)) == 'Incident') { 
      return; } 
     } 

     if (colClicked != 0) { 
     var record = grid.getStore().getAt(rowIndex); 
     var paramInScope = record.get("InScope"); 
     var paramAssetID = record.get("AssetID"); 

     if (paramInScope == 'Yes') { 
      OpenPrinterDetailsPopup(paramAssetID, 800, 600); 
     } else { 
      OpenPrinterDetailsPopup(paramAssetID, 300, 200); 
     } 
     } 

    } 
    , rowdblclick: function(grid, rowIndex, columnIndex, e) { 
     if (colClicked != 0) { 
     var record = grid.getStore().getAt(rowIndex); 
     var paramInScope = record.get("InScope"); 
     var paramAssetID = record.get("AssetID"); 

     if (record == null) { return; } 
     if (paramInScope == 'Yes') { 
      OpenPrinterDetailsPopup(paramAssetID, 800, 600); 
     } else { OpenPrinterDetailsPopup(paramAssetID, 300, 200); } 
     } 
    } 
    , expandedFilter: function() { Ext.getCmp('my-grid').setWidth(860); } 
    , collapsedFilter: function() { Ext.getCmp('my-grid').setWidth(1060); } 
    } 
}); 

var userHidden = false; 
if (showColumn) { grid.getColumnModel().setHidden(23, false); } 
else { grid.getColumnModel().setHidden(23, true); } 

if (fl1) { grid.getColumnModel().setHidden(3, fl1); } 
else { grid.getColumnModel().setHidden(3, flags1); } 

grid.getStore().reload(); 
grid.render('grid-example'); 

}); 

回答

0

的forcefit:真位只有当电网是另一个容器内适用,我相信。

如果你只是有一个自由浮动网格,它不是由Ext布局管理器管理,我认为你需要指定一个大小。

最简单的修复方法可能是在网格上方指定一个ViewPort或边界布局,然后指定forceFit选项。

1

如果您希望任何组件占据整个浏览器窗口并使用它调整大小,请使用Viewport并将布局设置为fit

Ext.onReady(function(){ 
    // ...your grid code... 
    //grid.render('grid-example'); <- do not render the grid, the viewport will do this for you 
    var viewport = new Ext.Viewport({ 
    layout: 'fit', 
    items: [grid] 
    }); 
}); 

请注意,您的标记现在应该<body></body>,因为Viewport将管理的浏览器身上。

+0

我已经为网格指定了视口,并且评论了网格grid.render,但网格不显示在网页上。我的代码在ascx页面,我已经在脚本标记中给出了javascript。你已经提到了标记的身体标记,我可以得到那部分。可以请你解释我。 – xrx215 2010-02-24 18:39:54

+0

这里是一个最小的Ext JS Viewport完整的HTML页面,你可以在你的网格中使用:http://gist.github.com/313826 – 2010-02-24 20:44:25

+0

谢谢 我会看看它并尝试解决它。 – xrx215 2010-02-25 16:09:37