`
zdzyh1989
  • 浏览: 4123 次
  • 性别: Icon_minigender_1
  • 来自: 衡水
社区版块
存档分类
最新评论

Ext gridpanel 在chrome错位

EXT 
阅读更多

当ExtJS3.4.0版本(其之前的版本应该也存在此问题)的Grid组件中同时存在水平和垂直滚动条时,在Chrome浏览器下(基于webkit渲染引擎下的浏览,safari也存在,本人未测)垂直滚动条会导致内容列错位。这是一个浏览器兼容性的ExtJS原生BUG(EXTJSIII-47),在ExtJS3.4.2版本中解决了。
具体效果如下图:
ext-3.4.0-grid
通过上图,可以明显的看到Grid组件的内容列发生“错位”的现象。

遇到问题的时候,本人试图通过调试源码和修改样式来解决这个问题,无奈能力有限,只能去官方社区寻找答案。在更换了N个搜素关键字后,终于找到下面两个类似于上述BUG的帖子:
1.Webkit浏览器引发的ExtJS BUG (ExtJS BUGIIS-47 )
2.ExtJS 3.2: Grid column header grouping
第一个帖子的解决方法测试是可用的,它主要是修改获取列宽度之和的方法(getTotalWidth)来修复这个问题,由于Webkit渲染引擎的变更(webkit352.3, chrome19以后 box-sizing默认为W3C的标准Box Model)导致每个列宽度计算的时候,列的宽度没有把列的边框宽度计算在内(ExtJS3.x中列边框左右分别为1px,合计2px),因此再重载getTotalWidth方法时,为每个列加上2px的边框宽度,此问题即可解决。
第二帖子中的回复内容中,采用CSS样式来解决此问题,我更倾向于采用这种方法解决。

@media screen and (-webkit-min-device-pixel-ratio:0) { 
    .x-grid3-cell, /* Normal grid cell */
    .x-grid3-gcell /* Grouped grid cell (esp. in head)*/
    {
        box-sizing: border-box;
    }
}

对于我这种CSS菜鸟来说,这几行勉强看懂,但是对于“-webkit-min-device-pixel-ratio:0”这个media type,倒是没用过;还有box-sizing的理解也比较模糊,找了几篇文章,其中几篇非常值得研读:
1.media type与media query
2.各浏览器的Hack写法(其中包含@media screen and (-webkit-min-device-pixel-ratio:0)这种写法的说明)
3.CSS3 Box-sizing
添加上述CSS后,此问题解决:
ext-3.4.0-grid-normal

转载http://ju.outofmemory.cn/entry/83965

分享到:
评论

相关推荐

    Ext GridPanel 中实现加链接操作

    本文将详细介绍如何在 Ext GridPanel 中实现加链接操作,包括基本原理、代码实现及注意事项。 #### 一、Ext GridPanel 基础 在了解如何添加链接之前,我们首先需要理解 Ext GridPanel 的基本结构。Ext GridPanel ...

    EXT GridPanel获取某一单元格的值

    在EXT GridPanel中,获取某一单元格的值是常见的操作,特别是在实现自定义事件处理或数据验证时。 在提供的代码段中,我们看到一个监听`cellclick`事件的例子,这是EXT 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的gridpanel控件二次加载问题

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

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

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

    ext.net 动态创建gridpanel

    在这个场景中,我们将深入探讨如何使用Ext.NET代码动态创建GridPanel,并在各种窗口中灵活展示。 1. **动态创建GridPanel**: 在Ext.NET中,动态创建GridPanel意味着在运行时根据需要生成组件。这通常涉及到在...

    EXTJSEXT实例GridPanel.

    EXTJS是一个基于JavaScript的用户界面库,用于构建富客户端应用。EXTJS的核心是其组件模型,GridPanel就是其中一种非常重要的组件,常用于...配合EXT提供的图片资源,可以帮助理解GridPanel在实际应用中的视觉效果。

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

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

    Ext.grid.GridPanel 删除线

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

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

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

    ext.net gridpanel 弹出窗

    ext.net gridpanel 弹出窗

    Ext.grid.GridPanel属性祥解

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

    ext form gridpanel

    `ext表单.png`可能是一个截图,展示了Ext Form GridPanel在页面上的实际效果。通常,这种图会显示表单字段如何与表格行对应,以及如何在界面上进行交互,比如编辑单元格、显示错误提示等。由于这是一个图片文件,...

    tapestry4.02中封装ext的GridPanel组件

    在Tapestry 4.02中封装Ext的GridPanel组件,意味着开发者将ExtJS的GridPanel功能集成到Tapestry应用中,使Tapestry应用能够利用GridPanel的强大功能。这个过程通常涉及到以下几个关键步骤: 1. **引入ExtJS库**:...

    ExtJS 表格面板GridPanel完整例子

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

    ext2.0网格实践源码

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

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

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

    Ext.grid.ColumnModel显示不正常

    Ext.grid.ColumnModel显示不正常

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

    Ext.grid.GridPanel 是一个功能强大且广泛使用的Grid控件,但是它存在一个很大的缺陷:单元格的内容不能选中,没法选中就没法复制,这给用户带来了很多不便。这个问题的根源在于ExtJs输出的代码中,每个单元格的div...

Global site tag (gtag.js) - Google Analytics