`
youanyyou
  • 浏览: 196391 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ExtJS Grid 可以选择文字方法

阅读更多

How to select text in the grid (with the mouse) so that it can be copied to the clipboard

 

1.相关帖子:http://extjs.com/forum/showthread.php?p=154426#post154426

 

2.下面是Condor 使用的方法:

  • 首先添加CSS:
Html代码 复制代码
  1. <style type="text/css">  
  2.     .x-selectable, .x-selectable * {   
  3.         -moz-user-select: text!important;   
  4.         -khtml-user-select: text!important;   
  5.     }   
  6. </style>  
<style type="text/css">
	.x-selectable, .x-selectable * {
		-moz-user-select: text!important;
		-khtml-user-select: text!important;
	}
</style>
  • 然后在grid的配置中使用该css

 

Js代码 复制代码
  1. var grid = new Ext.grid.GridPanel({   
  2.    viewConfig: {   
  3.       templates: {   
  4.          cell: new Ext.Template(   
  5.             '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} <SPAN style="COLOR: #808000">x-selectable</SPAN>   
  6.  {css}" style="{style}"                         tabIndex="0" {cellAttr}>',   
  7.                '<div class="x-grid3-cell-inner x-grid3-col-{id}" {attr}>{value}</div>',   
  8.             '</td>'  
  9.          )   
  10.       }   
  11.    },   
  12.    ...   
  13. });  
var grid = new Ext.grid.GridPanel({
   viewConfig: {
      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>'
         )
      }
   },
   ...
});

 

3.如果你想把它设置为GRID的默认属性,可以使用以下代码:

Js代码 复制代码
  1. if (!Ext.grid.GridView.prototype.templates) {   
  2.    Ext.grid.GridView.prototype.templates = {};   
  3. }   
  4. Ext.grid.GridView.prototype.templates.cell = new Ext.Template(   
  5.    '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} x-selectable {css}"  
  6.                style="{style}" tabIndex="0" {cellAttr}>',   
  7.    '<div class="x-grid3-cell-inner x-grid3-col-{id}" {attr}>{value}</div>',   
  8.    '</td>'  
  9. );  
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>'
);

 译者注:紧跟ext-all.js的后面

 

4.如果你也想让表头文字可选,则可以相应的修改hcell模板;

5.如果你使用的是分组Grid,则需要把以上的模板定义放入到GroupingView的配置中去,而不是上文的viewConfig

 

 

译注:

 

1.看下源码:

Js代码 复制代码
  1. //GridView 288行   
  2. if(!ts.cell){   
  3.   ts.cell = new Ext.Template(   
  4.     '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>',   
  5.       '<div class="x-grid3-cell-inner x-grid3-col-{id}" <SPAN style="COLOR: #808000">unselectable="on"</SPAN>   
  6.  {attr}>{value}</div>',   
  7.     '</td>'  
  8.   );   
  9. }  
//GridView 288行
if(!ts.cell){
  ts.cell = new Ext.Template(
    '<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="0" {cellAttr}>',
      '<div class="x-grid3-cell-inner x-grid3-col-{id}" unselectable="on"
 {attr}>{value}</div>',
    '</td>'
  );
}

 可知,以上的修改就是把unselectable去掉,并且在td的class里面多加了我们的x-selectable

 

 

2.进一步的,如果需要只针对某些列可选:

    2.1在该列的renderer(value,meta)里面,添加一句meta.selectable=true

    2.2再编辑下cell的模板,在里面判断{selectable?'someCssClass':''}

 

深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

0
1
分享到:
评论

相关推荐

    ExtJS4.0 分享GridHeaderFilters插件

    ExtJS提供了API接口来编程式地控制过滤器,如`grid.filters.getFilter(id)`可以获取特定列的过滤器,`filter.enable()`或`filter.disable()`可以启用或禁用过滤器,`grid.filters.apply()`将所有过滤器的条件应用到...

    extjs单元格无法复制

    解决这个问题的方法有两个步骤:添加新的 CSS 样式和修改 Ext.grid.GridPanel 的 prototype。 首先,我们需要添加一个新的 CSS 样式来覆盖原来 ExtJS 输出的 CSS 代码。我们可以添加以下代码: .x-selectable, ....

    静态EXTJS GRID

    EXTJS Grid是一款强大的数据展示组件,常用于构建复杂的Web应用程序中的数据网格。它允许用户以交互方式查看、编辑和管理大量结构化数据。在EXTJS Grid中,数据通常以行和列的形式呈现,支持排序、分页、过滤、拖放...

    ExtJS文字按钮列

    2. **自定义扩展**:如果需要更多的定制,可以扩展`Ext.grid.ActionColumn`,并添加自己的方法和属性,例如: ```javascript Ext.extend(MyTextActionColumn, Ext.grid.ActionColumn, { text: '操作', getText: ...

    Extjs的loading效果

    如果你在使用`Ext.data.Store`和`Ext.grid.Panel`,可以自动触发加载遮罩。只需在store的`load`事件中显示遮罩,在`load`事件完成时隐藏: ```javascript store.on('load', function(store, records, successful...

    EXTJS4 Actioncolumn不能使用文字的部分解决办法

    就是extjs4里面,想给grid里面一格中,文字后面加个小图标。 因为俺们项目就只是文字+图标,所以俺就没有复写Actioncolumn,而是从Column下面继承了一下。。 包含自定义插件源码、效果图等等。

    ExtJS中的Grid Title部分利用XML定义随意变化

    这种方法使得Grid的结构可以根据业务需求动态调整,大大提升了代码的复用性和维护性。 首先,让我们了解一下Grid的Title部分。在ExtJS的Grid中,Title通常指的是列头,也就是每一列上方显示的文字,用于标识该列的...

    ExtJs表格点击超链接获取行的值

    在ExtJs中,我们可以通过多种方式获取选中的行数据,具体取决于我们的选择模式是单选、多选还是单元格选择。 **1. 单选或多选模式** ```javascript var grid = Ext.getCmp('gridId'); var selectedRecords = grid....

    extJs2.0 中文手册

    ExtJs2.0版本是框架的一个里程碑,提供了许多重要特性和改进,使其成为了当时开发者们广泛使用的选择。 在深入探讨ExtJs2.0的具体知识点之前,需要明确ExtJs2.0中文手册的主要内容涵盖了框架的安装、配置、组件使用...

    extjs 5 combogrid控件

    Combogrid控件结合了combobox(下拉框)和grid(数据网格)的优点,用户可以在输入框内搜索关键字,同时在下拉区域看到匹配的数据列表,列表以表格的形式展示,便于用户快速浏览和选择。 在ExtJS 5中,Combogrid...

    修改grid行或列颜色

    在本篇内容中,我们将详细探讨如何通过ExtJS框架来修改Grid中行或列的颜色,以便于实现更直观的数据展示效果。...通过上述方法,我们可以灵活地控制ExtJS Grid中的行和列颜色,进一步提升用户体验和界面美观度。

    ExtJs框架系列之ProgressGrid进度条

    你可以设置它的width属性来决定进度条的宽度,text字段可以用来显示进度条旁的文字描述。 ```javascript var grid = new Ext.grid.GridPanel({ columns: [{ xtype: 'progresscolumn', width: 100, // 进度条...

    ExtJS ToolTip功能

    设置了单元格选择模型(`cellmodel`),这意味着用户可以单独选择单元格而不是整行。 6. **插件**: ```javascript plugins:[{ ptype:'cellediting', clicksToEdit:1 }], ``` 添加了一个单元格编辑插件(`...

    extjs desktop实例(个人/家庭收支系统)第2部分

    10. **国际化和本地化**:对于多语言支持,ExtJS提供了国际化功能,可以根据用户的语言设置显示相应的文字和日期格式。 综上所述,这个ExtJS桌面实例不仅涉及前端UI的设计和交互,还涵盖了数据管理、业务逻辑和用户...

    Extjs & Ext.net中的一些属性

    例如,使用`getCmp`方法结合`setValue`或`setText`方法,可以动态更新界面上任何组件的状态。这对于响应用户操作、显示数据或提供实时反馈非常有用。同样地,`grid.getView().getRow(girdcount).style.height`这样的...

    Extjs搜索过滤 类似百度、google搜索

    当用户在搜索框中输入文字时,可以通过监听这些事件来实时更新展示的数据。 对于搜索过滤,我们可以创建一个函数,该函数接收用户输入的关键词,并对后台数据进行过滤。这里的关键在于实现一个有效的模糊匹配算法,...

    extjs表格文本启用选择复制功能具体实现

    以下是如何在EXTJS 4.0.2a版本下实现Grid文本选择和复制功能的详细步骤: 首先,我们需要自定义CSS样式来覆盖EXTJS默认的不可选中行为。通过设置`-moz-user-select`和`-khtml-user-select`属性为`text`,我们可以...

    Extjs4学习指南

    ### Extjs4学习指南 #### 1. Extjs初步 ...以上就是关于Extjs 4的学习指南,通过本指南的学习,读者可以掌握Extjs的基本使用方法以及高级功能的应用技巧,从而能够更加高效地开发出高质量的Web应用。

    常用Extjs工具:Extjs.util.Format使用方法

    通过这些方法,开发者可以在Extjs应用中更加灵活地处理数据格式化问题,提高开发效率和代码的可维护性。需要注意的是,由于使用OCR技术对文档进行文字扫描可能造成个别字识别错误或遗漏,实际应用时可能需要结合上...

    Ext表格(Grid)上面的悬浮提示

    NULL 博文链接:https://laodaobazi.iteye.com/blog/1064607

Global site tag (gtag.js) - Google Analytics