`
ld_hust
  • 浏览: 171555 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ExtJS Grid Tooltip的3+1种实现方式总结

阅读更多
    本文总结了ExtJS Grid Tooltip的几种实现方法。ExtJS Grid Tooltip可以通过表头提示,单元格提示,行提示以及自己手动添加等方式完成。本文参考了官方FAQ上提供的描述。

     

    ExtJS Grid Tooltip实现之一:表头提示

    在2.2里面是设置ColumnModel.tooltip ,3.0则是Column. tooltip 如下:

  1. var grid = new Ext.grid.GridPanel({    
  2.   columns:[    
  3.     {header:'名称',dataIndex:'name',tooltip:'对象名称'},    
  4.     {header:'开始时间 - 结束时间 < br/>成功/失败/成功率', dataIndex:'sucRate',tooltip:'成功/失败/成功率'}    
  5.   ]    
  6. });  

ExtJS Grid Tooltip实现之二:单元格提示

1)使用Ext.QuickTips

在开始的时候就执行Ext.QuickTips.init();

然后对需要提示的单元格,重写renderer函数,添加ext:qtitle , ext:qtip这2个属性即可。

这个在官方的FAQ上有详细描述: http://extjs.com/learn/Ext_FAQ_Grid#Add_ToolTip_or_Qtip

  1. //option 1    
  2. //========    
  3. renderer = function (data, metadata, record, rowIndex, columnIndex, store) {    
  4.     //build the qtip:    
  5.     var title = 'Details for ' + value + '-' + record.get('month') +    
  6.         '-' + record.get('year');    
  7.     var tip = record.get('sunday_events');    
  8.      
  9.     metadata.attr = 'ext:qtitle="' + title + '"' + ' ext:qtip="' + tip + '"';    
  10.      
  11.     //return the display text:    
  12.     var displayText = '< span style="color: #000;">' + value + '< /span>< br />' +    
  13.         record.get('sunday_events_short');    
  14.     return displayText;    
  15. };    
  16.      
  17. //option 2    
  18. //========    
  19. renderer = function (data, metadata, record, rowIndex, columnIndex, store) {    
  20.     var qtip = '>';    
  21.     if(data >= 0){    
  22.         qtip = " qtip='yeah'/>";    
  23.         return '< span style="color:green;"' + qtip + data + '%< /span>';    
  24.     }else if(data <  0){    
  25.         qtip = " qtip='woops'/>";    
  26.         return '< span style="color:red;"' + qtip + data + '%< /span>';    
  27.     }    
  28.     return data;    
  29. };    
  30.      
  31. //option 3    
  32. //========    
  33. var qtipTpl = new Ext.XTemplate(    
  34.     '< h3>Phones:< /h3>',    
  35.     '< tpl for=".">',    
  36.     '< div>< i>{phoneType}:< /i> {phoneNumber}< /div>',    
  37.     '< /tpl>'    
  38. );    
  39.      
  40. renderer = function (data, metadata, record, rowIndex, columnIndex, store) {    
  41.      
  42.     // get data     
  43.     var data = record.data;    
  44.      
  45.     // convert phones to array (only once)     
  46.     data.phones = Ext.isArray(data.phones) ?    
  47.         data.phones :     
  48.         this.getPhones(data.phones);    
  49.      
  50.     // create tooltip     
  51.     var qtip = qtipTpl.apply(data.phones);    
  52.      
  53.     metadata.attr = 'ext:qtitle="' + title + '"' + ' ext:qtip="' + tip + '"';    
  54.      
  55.     //return the display text:    
  56.     return data;        
  57. };   

2)使用ToolTip

官方也已经给出方法:

http://extjs.com/forum/showthread.php?p=112125#post112125

http://extjs.com/forum/showthread.php?t=55690

以上给出的方法是可以让一个grid里面的元素共享一个tooltip对象。一般用来做rowtip

不过3.0有更好的方式,如下:

ExtJS Grid Tooltip实现之三:行提示 RowTip

ExtJS3.0新增的方法,设置tooltip的delegate

  1. var myGrid = new Ext.grid.gridPanel(gridConfig);    
  2. myGrid.on('render'function(grid) {    
  3.     var store = grid.getStore();  // Capture the Store.    
  4.     
  5.     var view = grid.getView();    // Capture the GridView.    
  6.     
  7.     myGrid.tip = new Ext.ToolTip({    
  8.         target: view.mainBody,    // The overall target element.    
  9.     
  10.         delegate: '.x-grid3-row'// Each grid row causes its own seperate show and hide.    
  11.     
  12.         trackMouse: true,         // Moving within the row should not hide the tip.    
  13.     
  14.         renderTo: document.body,  // Render immediately so that tip.body can be referenced prior to the first show.    
  15.     
  16.         listeners: {              // Change content dynamically depending on which element triggered the show.    
  17.     
  18.             beforeshow: function updateTipBody(tip) {    
  19.                 var rowIndex = view.findRowIndex(tip.triggerElement);    
  20.                 tip.body.dom.innerHTML = "Over Record ID " + store.getAt(rowIndex).id;    
  21.             }    
  22.         }    
  23.     });    
  24. });   

ExtJS Grid Tooltip实现之四:其他方法?

监听GridView或Store的事件,然后通过rowSelector或getRow方法来遍历,自己加tooltip... 这个方式请无视吧

分享到:
评论

相关推荐

    Extjs Grid 中的 ToolTip效果

    首先,EXTJS提供了两种主要类型的Tooltip:Ext.tip.ToolTip和Ext.grid.tooltip.GridTip。前者是通用的Tooltip类,适用于任何需要显示提示的地方;后者是专门为Grid定制的,能更好地与Grid的行和列配合工作。 实现...

    Extjs4添加tooltip

    Extjs4的textfield控件竟然没有tooltip悬浮提示,这应该算是个bug吧。网上查了很多,也没有方案。后来自己通过查询并整理出这个方案,终于实现了。 思想如下: 在textfield渲染时注册mouseover事件,然后在其中调用...

    ExtJS ToolTip功能

    本文将详细介绍如何在ExtJS中实现ToolTip,并通过一个具体的示例来展示其实现过程。 #### 示例概述 本示例展示了一个名为`WebApp.view.tip.ToolTip`的自定义组件,该组件继承自`Ext.container.Container`。此组件...

    EXTJS 3 中文API手册

    7. **拖放(Drag & Drop)功能**:EXTJS 3实现了标准的HTML5拖放API,可以轻松创建可拖放的组件,增强了用户交互体验。 8. **树形(Tree)组件**:EXTJS 3的树形组件允许展示和操作层次结构的数据,支持节点的展开...

    中文的Extjs的api手册

    3. **布局管理**:ExtJS拥有多种布局方式,如Fit布局、Border布局、Column布局等,可以灵活地调整组件在容器中的位置和大小。 4. **表格(Grid)**:ExtJS的表格组件支持大量的功能,如分页、排序、过滤、行编辑等...

    Extjs 3.0 中文API

    1. **组件体系**:ExtJS 3.0的核心是其组件模型,包括各种UI元素如按钮(Button)、表格(Grid)、面板(Panel)、表单(Form)等。这些组件具有高度可定制性,可以通过配置选项来满足不同的需求。 2. **布局管理**...

    ExtJS文字按钮列

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端应用程序,特别是Web应用。它提供了丰富的组件模型,包括表格、窗体、菜单、工具栏等,帮助开发者创建功能强大的交互式用户界面。在ExtJS中,"按钮列"...

    extjs扩展标记

    1. **EXTJS组件**:EXTJS的核心是它的组件模型,包括GridPanel、TreePanel、PropertyGrid、EditorGridPanel、TabPanel、FormPanel、Panel、Window、ToolTip和FieldSet等。这些组件可以组合起来创建复杂的用户界面,...

    extjs 04_grid 单击事件新发现

    以下代码展示了如何在鼠标移到Grid的某个单元格上时,显示一个提示框(tooltip)显示该单元格的数据: ```javascript grid.on('mouseover', function(e) { var index = grid.getView().findRowIndex(e.getTarget()...

    extjs3.0 API 中英

    3. **布局管理**:ExtJS支持多种布局方式,如表布局(Table Layout)、流式布局(Form Layout)、绝对布局(Absolute Layout)等,可以根据不同场景灵活选择,满足各种布局需求。 4. **Ajax和数据接口**:ExtJS内置...

    ExtJs的resultGrids中动态添加按钮

    在ExtJS中,我们可以利用`grid`的`column`配置和`actionColumn`来实现这一功能。 首先,我们需要定义一个`Ext.grid.Panel`,这是ExtJS中的表格组件。在创建这个组件时,我们需要指定列模型(`columns`),其中可以...

    ExtJs3.0和2.0中文API

    ExtJS是一种基于JavaScript的富客户端应用开发框架,它提供了丰富的组件和强大的数据处理能力,使得开发者可以构建功能复杂的Web应用程序。本压缩包包含了ExtJS 2.0和3.0两个版本的中文API文档,以及对应的中英文...

    Extjs grid添加一个图片状态或者按钮的方法

    在ExtJS框架中,对Grid组件添加图片或按钮以表示特定状态或执行特定操作是一种常见需求。我们可以通过几种方法实现这一功能,下面详细阐述: 一、使用renderer为Grid列添加图片状态 renderer是一个用于渲染Grid中...

    extjs gridpanel例子和简单应用

    ### ExtJS GridPanel 使用详解及示例 #### 一、引言 在现代Web应用程序开发中,特别是基于ExtJS框架的应用程序中,`GridPanel`是处理表格数据展示的一个非常重要的组件。它不仅可以帮助开发者轻松地展示数据,还...

    extjs 3.3 API文档与源文件

    ExtJS 3.3 是一个历史悠久的JavaScript框架,主要用于构建富客户端Web应用程序。这个框架以其强大的组件模型、可定制的用户界面以及丰富的API而闻名。本文将深入探讨ExtJS 3.3的主要特点、核心概念以及相关的API知识...

    extjs中form与grid交互数据(record)的方法

    首先在grid的tbar中定义编辑按钮:Js代码 代码如下:id:’editDataButton’, text:’编辑’, tooltip:’编辑’, iconCls:’edit’, handler: function(){ showeditPanel();} 再定义form: Js代码 代码如下:var ...

    EXTJS分页全面分析

    在EXTJS框架中,`GridPanel`组件是一种常用的数据展示工具,它能够以表格形式呈现数据集。而分页功能是`GridPanel`一个重要的特性,它能够帮助用户更有效地管理大量的数据记录,避免一次性加载过多数据导致的性能...

    ExtJS 轻松搞定

    强调了ExtJS框架的特性,即它是一种基于JavaScript的UI库,用于构建动态的Web应用程序。 #### 二、Ext.onReady事件 介绍了ExtJS中onReady事件的用途,即在DOM完全加载后执行代码,确保脚本正确运行。 #### 三、...

    Extjs中文教程2.x

    通过上述知识点的总结,可以看出 Extjs 提供了丰富的 UI 组件和工具,帮助开发者高效地构建高质量的 Web 应用。无论是基础的 UI 控件还是高级的数据展示组件,Extjs 都有着详尽且强大的支持。开发者可以根据实际需求...

    extjs的xtype class对照表

    ExtJS 是一个流行的JavaScript应用程序框架,用于构建富客户端Web应用。在ExtJS中,`xtype` 是组件(Component)的标识符,它定义了组件的类型。`xtype` 类似于HTML中的元素标签,但针对ExtJS的组件体系。它们是轻量...

Global site tag (gtag.js) - Google Analytics