`
嗜血狼恋
  • 浏览: 26831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GridPanel 自动添加滚动条

 
阅读更多



      Extjs中的gridPanel总是出不来滚动条,很是郁闷,搞了一下午总算搞定……

 

 先上图片:

   

               

代码:

var grid = new Ext.grid.GridPanel({
                tbar: tbar,
                id: 'grid_userlist',
                renderTo: 'div_cabinetList',
                autoHeight: true,
                autoScroll: true,
                store: store,
                stripeRows: true,
                listeners: {
                    'render': function() {
                        for (var i = 0; i < tbars.length; i++) {
                            tbars[i].render(this.tbar);
                        }
                    }
                },
    viewConfig : {
       scrollOffset: -3 , //去掉右侧空白区域  具体数值可能需要调整
     layout : function() {
      if (!this.mainBody) {
       return; // not rendered
      }
      var g = this.grid;
      var c = g.getGridEl();
      var csize = c.getSize(true);
      var vw = csize.width;
      var vh=csize.height;
      if (!g.hideHeaders && (vw < 20 || csize.height < 20)) { // display:
       // none?
       return;
      }
      if (g.autoHeight) {
       this.el.dom.style.width = "100%";
       
       //计算grid高度
       var girdcount=store.getCount();
             var gridHeight=0;
       for(var i=0;i<girdcount;i++){
           gridHeight=gridHeight+grid.getView().getRow(i).clientHeight;
        } 
       this.el.dom.style.height =gridHeight+75;//75是菜单栏和分页栏高度和
       
       this.el.dom.style.overflowX = "auto"; //只显示横向滚动条

      } else {
       this.el.setSize(csize.width, csize.height);
       var hdHeight = this.mainHd.getHeight();
       var vh = csize.height - (hdHeight);
       this.scroller.setSize(vw, vh);
       if (this.innerHd) {
        this.innerHd.style.width = (vw) + 'px';
       }
      }
      if (this.forceFit) {
       if (this.lastViewWidth != vw) {
        this.fitColumns(false, false);
        this.lastViewWidth = vw;
       }
      } else {
       this.autoExpand();
       this.syncHeaderScroll();
      }
      this.onLayout(vw, vh);
     }  
    },
                cm: cm,
                bbar: new Ext.PagingToolbar({
                    pageSize: pageSize,
                    store: store,
                    autoWidth: true,
                    id:"btn_bbar",
                    displayInfo: true,
                    displayMsg: '<%=map.get("011") %>'+' {0}' + '<%=map.get("012") %> '+'{1} '+'<%=map.get("013") %>'+'<%=map.get("014") %> '+'{2} '+'<%=map.get("015") %>',//显示第几条到几条记录,一共多少条
                    emptyMsg: '<%=map.get("016") %>'//没有记录
                }) 
            });

 

注: (1) 出现滚动条的关键代码是 viewConfig属性的配置 ;

       (2) autoHeight: true,

   

 

  • 大小: 42.8 KB
分享到:
评论

相关推荐

    Extjs gridpanel 出现横向滚动条问题的解决方法

    在使用ExtJS开发Web应用程序时,经常会遇到在GridPanel中数据列过多,导致横向滚动条自动出现的问题。这个问题主要是由于GridPanel的宽度不足以容纳所有的列宽,因此浏览器会自动显示横向滚动条以便用户查看全部数据...

    Extjs让Gridpanel组件自动滚屏

    后来公司让改变一个Gridpanel的展现方式,要求实现滚屏的效果。于是我就开始找API相关的功能了。找了很久,也没有找到框架的相应控制方法,然后在网上找了很久,也没有找到有人给去示例,无奈就只能自己写JS来控制...

    Ext grid panel 滚动条位置不变

    ### Ext grid panel 滚动条位置不变 在前端开发领域,特别是在使用Ext JS框架时,保持滚动条位置不变是一个非常实用的功能。特别是在处理实时数据更新的场景下,这一功能可以确保用户在数据刷新后仍然停留在之前...

    gridPanel添加按钮

    在本话题中,我们讨论的是如何在`gridPanel`中添加按钮,这涉及到前端用户界面的设计和交互。`gridPanel`在诸如ExtJS、GWT或PrimeFaces等框架中常见,它们提供了丰富的功能来处理表格数据,包括排序、筛选、分页等。...

    Ext GridPanel 中实现加链接操作

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

    ext.net 动态创建gridpanel

    使用 Ext.NET 的响应式布局(Responsive Configurations)和设备配置(Device Profiles),可以使GridPanel在不同屏幕尺寸下自动适应。 总的来说,`newtpanel.aspx` 和 `newtpanel.aspx.cs` 文件展示了如何利用Ext...

    EXTJSEXT实例GridPanel.

    - **行编辑**: 可以通过添加RowEditor插件实现单元格级别的编辑。 - **分页**: 使用PagingToolbar可以实现数据的分页展示。 - **排序**: 默认支持列头点击进行排序,也可以自定义排序逻辑。 - **过滤**: ColumnModel...

    gridpanel常用操作

    `会在`GridPanel1`的存储库的开头插入一条新记录。 弹出窗体的打开通常是通过JavaScript函数完成的,比如`window.showModalDialog`。这会创建一个模态对话框来显示指定的页面。在`GridPanel`中单元格赋值,例如在弹...

    扩展GridPanel

    扩展的GridPanel,让其分页后保持选择状态

    给Extjs的GridPanel增加“合计”行

    总结来说,EXTJS的GridPanel添加“合计”行涉及到View的自定义、数据计算、模板创建、DOM操作以及样式调整等多个环节。通过以上步骤,我们可以实现一个动态更新且具有美观样式的“合计”行。这不仅增强了数据展示的...

    ExtJs GridPanel双击事件获得双击的行

    接下来,我们需要为GridPanel添加双击事件监听器。在ExtJs中,我们可以使用`viewConfig`配置项中的`selType`来定义选择模型,通常是'checkboxmodel',以便在每行前添加复选框。然后通过`selModel`配置项设置双击时...

    Extjs入门教程(treePanel和GridPanel)

    2. 创建GridPanel:定义Grid的数据模型,设置列配置,添加行操作和列筛选。 3. 数据绑定:通过store将TreePanel和GridPanel连接起来,使得选择树节点可以动态改变Grid的数据。 4. 事件监听:添加事件监听器来响应...

    Extjs中的GridPanel

    对于大数据量的展示,GridPanel 支持虚拟滚动和行级渲染,这大大减少了内存占用并提升了性能。 11. **工具栏和列菜单**: GridPanel 可以拥有自定义的工具栏,用于执行各种操作。列也可以有自己的右键菜单,如...

    ExtJS的GridPanel导出excel文件

    ExtJS的GridPanel导出excel文件,方便快捷易懂!

    Ext.grid.GridPanel 删除线

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

    Ext的gridpanel控件二次加载问题

    在Ext JS这个强大的JavaScript框架中,GridPanel是一个非常重要的组件,用于展示数据表格。然而,在实际应用中,可能会遇到一个常见的问题:当GridPanel需要进行第二次加载时,数据或者功能可能会丢失。这个问题主要...

    Extjs grid panel自带滚动条失效的解决方法

    这样做可以防止`Grid Panel`根据内容自动调整滚动条。接着,通过`viewConfig`配置,我们可以指定样式,例如设置`overflow`为`auto`以允许垂直滚动,同时设置`overflowX`为`hidden`以隐藏水平滚动条。 示例代码如下...

    改变gridpanel的行颜色

    可以给GridPanel的store添加`onload`事件来实现这一需求。 ```javascript grid.getStore().on('load', function(s, records) { var gridcount = 0; s.each(function(r) { if (r.get('zy') === '本期合计') { ...

    ExtJS 表格面板GridPanel完整例子

    - **排序与过滤**: `sortable`属性允许列排序,而`filter`配置则用于添加过滤器。 - **行编辑**: 使用`RowEditor`插件实现行内编辑。 - **行选择**: 可以配置`selModel`来实现单选或多选行。 - **扩展功能**: 如`...

Global site tag (gtag.js) - Google Analytics