`
hackbomb
  • 浏览: 217181 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ext gridPanel宽度100%时width:100000 BUG解决

    博客分类:
  • Ext
EXT 
阅读更多

bodyStyle:'width:100%',
autoWidth:true,


淘汰的方法有下面二种实现:
不知是Ext的Bug还是其他原因,当初始化grid并将宽度设为100%时,其宽度会变成10000px宽,高度100%则grid高度根据grid内容自适应,而不是根据其所在容器自适应,一直没有很好的办法,只能使用绝对宽高,但有时这是很不方便的。
对此问题一直耿耿于怀,后来终于想出了一个办法,还真的可行,但就是感觉有点蹩脚。
一般我们都通过render到指定id的层上来展现grid,虽然不能让grid宽高自适应,但层还是可以的。
如我们这里要用到的层是<div id="orgGrid"></div>。我们可以在这个层上设置高宽。
如<div id="orgGrid" style="width:100%;height:250px"></div>。
则在初始化grid的时候让其宽高与orgGrid宽高相同即可,并在页面resize时重新计算器宽度即可(一般高度固定还是比较好)。

js代码如下:


//..前面若干行代码省略,如ds/colmodel等
var orgGrid=Ext.get("orgGrid"); //展示grid的容器
    var grid = new Ext.grid.GridPanel({
        title:"人员管理",
        ds: ds, //数据源
        cm: colModel, //列模式
        sm:selMode,    //选择模式
        width:orgGrid.getComputedWidth(),
        height:orgGrid.getComputedHeight(),
        autoExpandColumn:"memory", //自动扩展宽度的列
        autoScroll:true,
        loadMask:{msg:"数据加载中,请稍等..."}
     });
     ds.load();
     grid.render(orgGrid); //把grid铺到id为grid的容器中

window.onresize=function(){
        grid.setWidth(0);
        grid.setWidth(orgGrid.getComputedWidth());
};


这样不论页面宽度怎么变化grid都会自适应页面容器了。



========================================================================

Ext.grid.grid的宽度100%的问题2007-08-24 10:20找了很久,终于是实现了。部分代码如下,希望能给大家提供帮助:

var Result_234=function(){
      var grid;
      return {
       init : function() {
       var CW=Ext.get("div_displayResult").getWidth();//容器宽度
       var C1Width=CW*20/100-10;
       var C2Width=CW*20/100-10;
       var C3Width=CW*20/100-10;
       var C4Width=CW*20/100-10;
       var C5Width=CW*20/100-10;
    var recordType = Ext.data.Record.create([
       {name: "id", type: "int"},
       {name: "agentCity", mapping: "vo.agentCity", type: "string"},
       {name: "arrivalAirport", mapping:"vo.arrival", type: "string"},
       {name: "departureAirport", mapping:"vo.departure", type: "string"},
       {name: "date", mapping: "vo.date",type: "string"},
       {name: "passengerQuantity", mapping: "vo.passengerQuantity",type: "int"}
        ]);
       var ds = new Ext.data.Store({
           proxy: new Ext.data.DWRProxy(CTResult.domLsodOsldPaxReport, true),
           reader: new Ext.data.ListRangeReader({
               totalProperty: 'totalSize',
               id: 'id'
           }, recordType),
           remoteSort: true
       });
       var cm    = new Ext.grid.ColumnModel(
       [
        {
         id: 'agentCity',
         header: '销售城市',
         width: 250,
         sortable: true,
         dataIndex: 'agentCity',
         width: C1Width
        },
        {
         header: '到达',
         width: 250,
         sortable: true,
         dataIndex: 'arrival',
         width: C2Width
        },
        {
         header: '出发',
         width: 250,
         sortable: true,
         dataIndex: 'departure',
         width: C3Width
        },
        {
         header: '日期',
         width: 250,
         sortable: true,
         dataIndex: 'date',
         width: C4Width
        },
        {
         header: '比例',
         width: 250,
         sortable: true,
         dataIndex: 'passengerQuantity',
         width: C5Width
        }        
       ]
      );
       grid = new Ext.grid.EditorGrid('mygrid', {
           ds: ds,
           cm: cm,
           trackMouseOver: true,
         loadMask: true,
         autoExpandColumn: 'agentCity',
         fitContainer: true
       });
       grid.render();
      var gridFoot = grid.getView().getFooterPanel(true);
       var paging = new Ext.PagingToolbar(gridFoot, ds, {
           pageSize: 5,
           displayInfo: true,
           displayMsg: 'display {0} - {1} of {2}',
           emptyMsg: "no record"
       });
    ds.on('beforeload', function() {
       ds.baseParams = {
         param1: 'test111',
         param2: true
       };
     });
    ds.load({params:{start:0, limit:5}});
},
    testx:function(){
     AMAR.displayQueryResultT(grid);
    }
};
}();

gridPanel=new Ext.GridPanel(grid, {closable: false, fitContainer: true})

分享到:
评论

相关推荐

    Ext GridPanel 中实现加链接操作

    ### Ext GridPanel 中实现加链接操作 在前端开发领域中,Ext JS 是一款非常流行的 JavaScript 框架,用于构建企业级的 Web 应用程序。Ext GridPanel 是该框架中的一个重要组件,常用于展示表格数据。本文将详细介绍...

    EXT GridPanel获取某一单元格的值

    EXT GridPanel是EXT JS库中的一个核心组件,用于创建数据密集型的表格视图。它在Web应用程序中常用于展示大量结构化数据,并提供多种交互功能,如排序、分页、筛选和编辑等。在EXT GridPanel中,获取某一单元格的值...

    EXTJSEXT实例GridPanel.

    { header: 'Phone', width: 100, dataIndex: 'phone' } ]); ``` 4. **GridPanel**: 最后,创建GridPanel本身,将Store和ColumnModel作为参数传递。 ```javascript var grid = new Ext.grid.GridPanel({ store: ...

    Ext的gridpanel控件二次加载问题

    总之,解决Ext的gridpanel控件二次加载时丢失的问题需要对Ext JS的生命周期管理有深入的理解,并结合实际应用场景选择合适的策略。无论是使用全局变量还是优化加载机制,关键在于确保GridPanel实例和数据的正确管理...

    Ext GridPanel导出Excel(改进)

    将页面的GridPanel中的数据导出到Excel中 测试Ext:版本2.2.1 支持GridSummary,GroupSummary和GroupHeaderPlugin插件 使用方法: 1)把三个JS文件引入到页面中 2)调用例句: var data2Excel = new Ext.icss.Data2...

    ext gridpanel 跨行

    "ext gridpanel 跨行"这个主题主要涉及到在GridPanel中实现单元格或行的跨行显示,这在展示复杂数据或需要组合信息时非常有用。 首先,让我们深入理解什么是GridPanel。在Ext JS中,GridPanel是一个表格视图,它...

    Ext Grid表格的自动宽度及高度的实现

    在探讨“Ext Grid表格的自动宽度及高度的实现”这一主题时,我们深入解析如何在Ext JS框架下,利用其强大的Grid组件自适应容器尺寸,实现表格宽度与高度的自动调整。这一技术对于构建响应式、用户友好的界面至关重要...

    ext.net 动态创建gridpanel

    在Ext.NET中,动态创建GridPanel意味着在运行时根据需要生成组件。这通常涉及到在服务器端代码(如C#或VB.NET)中创建GridPanel对象,设置其属性,然后将它添加到对应的容器中。`newtpanel.aspx.cs` 文件很可能是...

    Ext.grid.GridPanel属性祥解

    ### Ext.grid.GridPanel属性详析 #### 一、Ext.grid.GridPanel概述 `Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。...

    Ext实现GridPanel内嵌行内嵌表格(RowExpander)

    在本文中,我们将深入探讨如何使用ExtJS库中的RowExpander插件来实现在GridPanel中内嵌行内的表格。ExtJS是一个强大的JavaScript框架,它提供了丰富的组件和功能,用于构建复杂的Web应用程序。RowExpander插件是...

    Ext.grid.GridPanel 删除线

    Ext.grid.GridPanel 删除线 放到example文件夹下运行

    ExtJS 表格面板GridPanel完整例子

    ExtJS表格面板(GridPanel)是Sencha Ext JS框架中的一个核心组件,它用于展示大量结构化数据。在本文中,我们将深入探讨如何创建并使用一个完整的ExtJS GridPanel实例,以及与其相关的源码和工具。 首先,让我们...

    ext2.0网格实践源码

    5. **分页和数据加载**:EXT2.0的GridPanel支持分页,你将看到如何配置和使用PagingToolbar来实现分页功能,以及如何在用户翻页时动态加载数据。 6. **自定义行为**:EXT GridPanel允许开发者自定义很多行为,例如...

    ext.net gridpanel 弹出窗

    ext.net gridpanel 弹出窗

    GridPanel中的单元格不能选中复制的解决方法

    解决Ext.grid.GridPanel中的单元格不能选中复制的问题需要从两个方面入手:添加新的CSS样式和修改Ext.grid.GridPanel的protoType。这些解决方案可以帮助开发者解决这个棘手的问题,提高用户体验。

    Ext GridPanel加载完数据后进行操作示例代码

    在Ext JS中,`Ext GridPanel`是一种常用的组件,用于展示和操作表格数据。它具有丰富的功能,包括分页、排序、筛选等。本示例主要关注在`GridPanel`加载完数据后如何进行特定的操作,特别是选定某些行数据。 首先,...

    Ext3.2的TreePanel和GridPanel的分页与Hibernate的分页功能的影射

    环境:Windows XP sp3、IE 7.0、MS SQL Server 2000、MyEclipse5.5、 Ext 3.2、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE打开工程 2、在工程中找到“数据库脚本.sql”文档,然后在查询分析器中生成数据与测试...

    Ext中grid多行数据全部删除

    ### Ext中grid多行数据全部删除 在前端开发过程中,我们经常会遇到需要处理表格数据的情况。其中,ExtJS是一个非常强大的JavaScript框架,它提供了一系列工具和组件来帮助开发者快速构建复杂的用户界面。本文将详细...

    ext gridpanel多层表头分组小计导出excel与Java后台交互全代码

    该例子实现了ext的gridpanel多层表头+分组+小计以及与Java后台交互的全代码。还有自适应浏览器大小的功能包括导出excel,里面有注释,可能注释不全。分别为group.jsp,totals.jsp页面。

    Ext.net实现GridPanel拖动行、上移下移排序功能DEMO

    对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...

Global site tag (gtag.js) - Google Analytics