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

关于extjs3-ux扩展组件 ColumnHeaderGroup 在chrome19以上版本出问题的解决

 
阅读更多
首先声明此问题是在extjs3版本.
我用ColumnHeaderGroup组件发现 在chrome19以前版本没有问题,但在chrome19+的时候,,显示不正确,所以找问题,发现问题在这里,可以看下面连接
http://code.google.com/p/chromium/issues/detail?id=124816
那么解决方式有3种:
1.修改EXTJS-JS文件和ColumnHeaderGroup.js
2.修改EXTJS-CSS文件
3.增加另外CSS文件覆盖 --个人推荐用这个

下面具体解决方法
解决方法一、修改EXTJS-JS  GridView.js文件和ColumnHeaderGroup.js
注:这种方式我只测试了chrome和firefox,没有测试其他浏览器的执行情况
在 GridView.js 里面的
getColumnWidth : function(column) {
        var columnWidth = this.cm.getColumnWidth(column),
            borderWidth = this.borderWidth;
        
        if (Ext.isNumber(columnWidth)) {
            if (Ext.isBorderBox || (Ext.isWebKit && !Ext.isSafari2)) {
                return columnWidth + "px";
            } else {
                return Math.max(columnWidth - borderWidth, 0) + "px";
            }
        } else {
            return columnWidth;
        }
    },

修改成
getColumnWidth : function(column) {
        var columnWidth = this.cm.getColumnWidth(column),
            borderWidth = this.borderWidth;
        
        if (Ext.isNumber(columnWidth)) {
            if (Ext.isBorderBox /**这里去掉了*/) {
                return columnWidth + "px";
            } else {
                return Math.max(columnWidth - borderWidth, 0) + "px";
            }
        } else {
            return columnWidth;
        }
    },

同样修改 ColumnHeaderGroup.js
getGroupStyle: function(group, gcol){
        var width = 0, hidden = true;
        for(var i = gcol, len = gcol + group.colspan; i < len; i++){
            if(!this.cm.isHidden(i)){
                var cw = this.cm.getColumnWidth(i);
                if(typeof cw == 'number'){
                    width += cw;
                }
                hidden = false;
            }
        }
        return {
            width: (Ext.isBorderBox || (Ext.isWebKit && !Ext.isSafari2) ? width : Math.max(width - this.borderWidth, 0)) + 'px',
            hidden: hidden
        };
    },

修改成
getGroupStyle: function(group, gcol){
        var width = 0, hidden = true;
        for(var i = gcol, len = gcol + group.colspan; i < len; i++){
            if(!this.cm.isHidden(i)){
                var cw = this.cm.getColumnWidth(i);
                if(typeof cw == 'number'){
                    width += cw;
                }
                hidden = false;
            }
        }
        return {
            width: (Ext.isBorderBox ? width : Math.max(width - this.borderWidth, 0)) + 'px',
            hidden: hidden
        };
    },


解决方法二、修改extjs css样式
在 extjs 的css样式里面有这个
.x-grid3-cell{
    -moz-user-select: none;
    -khtml-user-select:none;
    -webkit-user-select:ignore;
}

修改成
.x-grid3-cell{
    -moz-user-select: none;
    -khtml-user-select:none;
    -webkit-user-select:ignore;
    box-sizing: border-box;
}


然后下面就比较搞了,注意看 ColumnHeaderGroup.js 里面这段代码
ts.gcell = new Ext.XTemplate('<td class="x-grid3-hd x-grid3-gcell x-grid3-td-{id} ux-grid-hd-group-row-{row} {cls}" style="{style}">', '<div {tooltip} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">', this.grid.enableHdMenu ? '<a class="x-grid3-hd-btn" href="#"></a>' : '', '{value}</div></td>');

出现了一个 x-grid3-gcell 样式,我找遍所有ux的CSS文件 居然没发现有这个东东。
得,还得加上一个这个样式,照抄 x-grid3-cell

解决方法三、 干脆增加一个mycss文件 直接覆盖对应样式。
这样不用修改所有原文件。
我就是这么干的。
.x-grid3-cell{
    -moz-user-select: none;
    -khtml-user-select:none;
    -webkit-user-select:ignore;
    box-sizing: border-box;
}

.x-grid3-gcell{
    -moz-user-select: none;
    -khtml-user-select:none;
    -webkit-user-select:ignore;
    box-sizing: border-box;
}

OK,完毕
分享到:
评论

相关推荐

    extjs4.1-ux.rar

    Extjs4.1多个扩展 1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button ...主页:https://github.com/harrydeluxe/extjs-ux 注明:在Extjs4.1上是可以使用的,Extjs4.2部分会有问题。

    extjs-ux, EXT JS 4的一些插件和扩展.zip

    extjs-ux, EXT JS 4的一些插件和扩展 插件和 EXT JS 4扩展 Ext.ux. aceeditor.Panel 演示( 简单): 链接演示( 流 语法): 链接演示:链接论坛:链接 Ext.ux. grid.feature.Tileview 演示:链接

    ExtJS-4.2.6扩展ux插件89个

    这个特定的压缩包"ExtJS-4.2.6扩展ux插件89个"包含了Ext JS 4.2.6版本的一个重要组件:ux(用户界面扩展)插件。这些插件提供了额外的功能和组件,增强了框架的原生能力,帮助开发者构建更复杂、功能更丰富的应用...

    extjs2----关于extjs 的使用,操作

    在标题"extjs2----关于extjs 的使用,操作"中,我们可以看出这是一份关于ExtJS 2.0版本的使用指南,主要涵盖了其基本操作和应用。描述中提到内容较为初级,适合初学者学习,这表明我们将探讨的是ExtJS的基础概念和...

    extjs视频-- 表单组件

    通过这个观看视频会让你很快的了解到extjs,并且能够很快的进入ext的使用

    Extjs树分页组件扩展

    "Extjs树分页组件扩展"就是为了解决这一问题而设计的,它通过扩展TreeLoader和PagingToolbar,实现了在树形组件中进行分页加载的效果。 **TreeLoader的扩展** TreeLoader是ExtJS中负责异步加载树节点的类。在原生...

    ExtJS 组件扩展

    在使用ExtJS进行组件扩展时,开发人员常常会遇到一些典型的问题: 1. **没有封装**:这通常是由于开发者对ExtJS机制理解不足所致。此类问题的核心在于未充分利用ExtJS框架的组件生命周期管理能力,导致编写出的代码...

    ExtJS开发插件及Ext包

    - 在早期版本中,ExtJS的包管理系统相对简单,主要是通过引入不同的JavaScript文件来组织和使用组件。 - 使用时,开发者需要根据项目需求选择合适的组件和资源,然后在HTML文件中引入对应的JavaScript和CSS文件。 ...

    深入浅出EXTJS320-395

    深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320...

    extjs-Ext.ux.form.LovCombo下拉框

    标题中的"extjs-Ext.ux.form.LovCombo下拉框"表明我们要讨论的是EXTJS中的一个特定组件,它是EXTJS的扩展插件,用于实现具有多选功能的下拉框。这个组件在处理火狐浏览器兼容性问题上做了优化,解决了在火狐浏览器下...

    extjs4-slate 主题

    ExtJS 4 Slate 主题是基于 Sencha ExtJS 4.0.7 框架的一个视觉风格,它提供了一种现代、扁平化的设计,增强了用户界面的吸引力和用户体验。Slate 主题是对默认主题的扩展,旨在为开发者提供一个更加专业且引人入胜的...

    EXTJS3.2-3.3中文API和包

    EXTJS 是一个基于JavaScript的富客户端应用开发框架,主要用于构建具有丰富用户界面的Web应用程序。EXTJS 3.2-3.3版本是EXTJS框架的一个...同时,这些资料也可以帮助开发者解决在开发过程中遇到的问题,提高开发效率。

    extjs-OA extjs-oa

    一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa

    ExtJS--Windows.rar_extjs_extjs CSharp_extjs windows

    这个名为"ExtJS--Windows.rar"的压缩包显然是关于如何使用ExtJS来模仿Windows桌面应用的示例或教程。让我们深入探讨一下ExtJS以及如何利用它来实现这样的效果。 1. **ExtJS框架**:ExtJS是由Sencha公司开发的一个...

    ExtJS----HelloWorld程序源码

    在"ExtJS----HelloWorld程序源码"中,我们将会看到如何使用ExtJS来创建一个简单的“你好,世界!”应用。以下是对这个示例中涉及的主要知识点的详细解释: 1. **引入ExtJS库**:首先,你需要在HTML文件中引入ExtJS...

    extjs extjs-basex.js

    extjs-basex.js extjs-basex.js extjs-basex.js

    Extjs--DWR做的动态树

    总的来说,"Extjs--DWR做的动态树"这个主题涉及到ExtJS的组件编程和DWR的远程调用技术,通过结合两者,可以创建出高度交互、响应迅速的Web界面。对于开发人员来说,理解这两个工具的集成是提升Web应用用户体验的重要...

    深入浅出EXTJS241-320

    深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320深入浅出EXTJS241-320

    Extjs--OA 自动办公系统

    【Extjs--OA 自动办公系统】是一款基于ASP.NET技术和EXTJS前端框架开发的办公自动化系统,采用典型的三层架构设计,旨在提供高效、便捷的办公流程管理。此系统的实现涉及了多个关键知识点,下面将详细阐述这些技术...

    EXTJS扩展例子集

    因此,这个"EXTJS扩展例子集"对于那些希望深入EXTJS开发或者需要解决特定问题的开发者来说,是一个宝贵的资源库。通过研究源代码,我们可以学习到EXTJS的最佳实践,同时也能为自己的项目找到灵感和解决方案。

Global site tag (gtag.js) - Google Analytics