`
tipx
  • 浏览: 109000 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

[转载]ExtJs疑难杂症之GridPanel单元格不能选中复制问题

阅读更多
今天遇到grid复制的问题,在网上找到了一个解决办法,只需改下CSS和JS,给大家分享一下:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dy_paradise/archive/2010/01/19/5212389.aspx

Ext.grid.GridPanel有一个重大缺陷,就是单元格的内容不能选中,没法选中就没法复制,给用户带来很多不便。

分析: 用IE Developer Toolbar打开ExtJs输出的代码研究了一下,发现每个单元格的div都有一个属性:unselectable="on",看来是css在作怪。

版本: 2.2 (也适用v3+)

解决办法: extJs官方论坛上有具体的解决办法,比较可行的如下。

step1:添加新的css样式。

<style type= "text/css" >    
    .x-selectable, .x-selectable * {    
        -moz-user-select: text! important ;    
        -khtml-user-select: text! important ;    
    }    
</style>
  

step2:修改Ext.grid.GridPanel的protoType,我是自己写了一个新的js文件,记得要在ext-all.js后面引入。

if  (!Ext.grid.GridView.prototype.templates) {    
    Ext.grid.GridView.prototype.templates = {};    
}    
Ext.grid.GridView.prototype.templates.cell =  new  Ext.Template(    
     '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} x-selectable {css}" style="{style}" tabIndex="0" {cellAttr}>' ,    
     '<div class="x-grid3-cell-inner x-grid3-col-{id}" {attr}>{value}</div>' ,    
     '</td>'    
);
  
done!现在GridPanel的单元格可以选中了。
分享到:
评论
2 楼 Sunshine_Rozen 2012-11-16  
  楼主 ,怎么能不让他复制列后面的按钮,还有隐藏的值啊。
1 楼 tipx 2010-11-09  

按转载的文章,直接覆盖后,导致grid中的rowBody不能使用。。。

为了避免rowBody不能使用,新建一个View类,继承GridView,然后修改新类的prototype.templates属性值,这样在需要能选中列的Grid中使用新的view对象就可以了。

Ext.ns('Ext.ux.grid');
Ext.ux.grid.CellSelectView = Ext.extend(Ext.grid.GridView, {});
if  (!Ext.ux.grid.CellSelectView.prototype.templates) {
    Ext.ux.grid.CellSelectView.prototype.templates = {};
}
Ext.ux.grid.CellSelectView.prototype.templates.cell =  new Ext.Template(
     '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} x-selectable {css}" style="{style}" tabIndex="0" {cellAttr}>' ,
     '<div class="x-grid3-cell-inner x-grid3-col-{id}" {attr}>{value}</div>' ,
     '</td>'
);

相关推荐

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

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

    extjs单元格无法复制

    ExtJS GridPanel 单元格无法选中复制的问题产生的原因是由于每个单元格的 div 都有一个属性:unselectable="on"。这个属性是 CSS 样式设置的结果,导致用户无法选中单元格的内容,从而无法复制。 解决这个问题的...

    给Extjs的GridPanel增加“合计”行

    在EXTJS中,GridPanel是一种常用的组件,用于展示表格数据。在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加...

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

    本篇文章将深入讲解如何在ExtJs GridPanel中实现双击事件,并获取双击的行以及选中的复选框状态。 首先,我们要了解GridPanel的基本结构。GridPanel由Store(数据存储)和ColumnModel(列模型)组成,它们定义了...

    ExtJS4.0下的gridPanel组建完全版

    在ExtJS 4.0版本中,GridPanel组件是其核心特性之一,它允许开发者创建数据密集型的表格展示,提供了丰富的功能和定制选项。这篇内容将深入探讨GridPanel在ExtJS 4.0中的应用及其相关知识点。 首先,我们来看...

    ExtJS 表格面板GridPanel完整例子

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

    Extjs入门教程(treePanel和GridPanel)

    ExtJS是一种基于JavaScript的前端开发框架,用于构建富客户端应用。它提供了丰富的组件库,包括TreePanel和GridPanel,这两个组件在数据展示和管理中扮演着重要角色。 TreePanel是ExtJS中的一个树形控件,它允许你...

    ExtJS的GridPanel导出excel文件

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

    EXT GridPanel获取某一单元格的值

    在EXT GridPanel中,获取某一单元格的值是常见的操作,特别是在实现自定义事件处理或数据验证时。 在提供的代码段中,我们看到一个监听`cellclick`事件的例子,这是EXT GridPanel中用于捕获用户点击单元格时的事件...

    ExtJS介绍以及GridPanel

    首先,ExtJS的核心特性之一是组件化。它将网页元素抽象为可复用的组件,如按钮、表格、窗口等,每个组件都有自己的属性、方法和事件,可以方便地进行组合和定制。这种组件化的思想极大地提高了代码的可维护性和复用...

    100行代码解决ExtJs4.1合并单元格问题

    100行代码解决ExtJs4.1合并单元格问题

    Extjs中的GridPanel

    GridPanel 是 ExtJS 中的核心组件之一,它提供了一种高效、可定制的方式来展示大量结构化数据。在这个主题中,我们将深入探讨 GridPanel 的关键特性和使用方法。 1. **GridPanel 基本结构**: GridPanel 包含了行...

    EXTJS单元格变色、行变色

    EXTJS单元格变色、行变色实现方法详解 EXTJS是一个功能强大且流行的JavaScript框架,用于构建复杂的Web应用程序。其中,Grid Panel是EXTJS中最常用的组件之一,用于展示和编辑数据。本文将详细介绍EXTJS实现单元格...

    Extjs2.02 Gridpanel

    EXTJS GridPanel 是EXTJS库中的核心组件之一,尤其在EXTJS 2.02版本中,它提供了强大的表格展示和交互功能,对于初学者来说极具学习价值。GridPanel不仅能够处理基本的表格操作,如单选、多选、排序、改变列宽等,还...

    extjs单元格合并

    EXTJS单元格合并是指在EXTJS GridPanel中实现单元格合并的功能。单元格合并可以使得GridPanel中的数据显示更加简洁和清晰。下面将详细介绍EXTJS单元格合并的实现方法。 一、加入CSS样式 在实现单元格合并时,需要...

    EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化

    EXTJS的GridPanel是其组件库中的核心组件之一,用于展示数据网格,广泛应用于Web应用的数据展示。在EXTJS中,ColumnModel是用来定义GridPanel列结构和行为的关键部分。这篇博客"EXTJS_GridPanel_ColumnModel_列的...

    ExtJs GridPanel延时加载.rar

    GridPanel是ExtJs中的核心组件之一,它提供了丰富的功能来展示和操作表格数据。你可以通过配置列、排序、过滤、分页等功能来定制你的表格。GridPanel通常与Store配合使用,Store负责管理数据,而GridPanel负责展示...

    extjs合并单元格

    标题中的“extjs合并单元格”指的是在使用Ext JS这个JavaScript框架时,如何实现表格(Grid)中的单元格合并功能。Ext JS是一个用于构建富客户端Web应用的前端框架,提供了丰富的组件库,其中包括数据网格(Data ...

    Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法

    在Extjs中,GridPanel组件是非常常用的一个表格组件,它提供了丰富的功能来展示和操作数据。其中,复选框(checkbox)是交互式元素中用于表示选中状态的常见组件。然而,在某些业务场景中,可能需要根据数据行的特定...

    ExtJS GRID单元格合并

    在ExtJS 4.0版本中,Grid提供了单元格合并的功能,这在处理复杂数据展示时非常有用,比如汇总信息或者创建表头合并。下面我们将深入探讨如何在ExtJS 4.0 Grid中实现单元格合并,以及其背后的技术细节。 首先,理解...

Global site tag (gtag.js) - Google Analytics