`
atian25
  • 浏览: 470249 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJS Grid tooltip的几种实现方式

阅读更多

看到问答里面的:http://www.iteye.com/problems/19761 就顺便总结点自己的体会吧。

 

 

1.表头提示

 

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

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

 

2.单元格提示

 

1)使用Ext.QuickTips

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

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

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

代码:

//option 1
//========
renderer = function (data, metadata, record, rowIndex, columnIndex, store) {
	//build the qtip:
    var title = 'Details for&nbsp;' + value + '-' + record.get('month') +
        '-' + record.get('year');
    var tip = record.get('sunday_events');
 
    metadata.attr = 'ext:qtitle="' + title + '"' + ' ext:qtip="' + tip + '"';
 
    //return the display text:
    var displayText = '<span style="color: #000;">' + value + '</span><br />' +
        record.get('sunday_events_short');
    return displayText;
};
 
//option 2
//========
renderer = function (data, metadata, record, rowIndex, columnIndex, store) {
    var qtip = '>';
    if(data >= 0){
        qtip = " qtip='yeah'/>";
        return '<span style="color:green;"' + qtip + data + '%</span>';
    }else if(data < 0){
        qtip = " qtip='woops'/>";
        return '<span style="color:red;"' + qtip + data + '%</span>';
    }
    return data;
};
 
//option 3
//========
var qtipTpl = new Ext.XTemplate(
    '<h3>Phones:</h3>',
    '<tpl for=".">',
    '<div><i>{phoneType}:</i> {phoneNumber}</div>',
    '</tpl>'
);
 
renderer = function (data, metadata, record, rowIndex, columnIndex, store) {
 
    // get data 
    var data = record.data;
 
    // convert phones to array (only once) 
    data.phones = Ext.isArray(data.phones) ?
        data.phones : 
        this.getPhones(data.phones);
 
    // create tooltip 
    var qtip = qtipTpl.apply(data.phones);
 
    metadata.attr = 'ext:qtitle="' + title + '"' + ' ext:qtip="' + tip + '"';
 
    //return the display text:
	return data;    
};
 

 

2)使用ToolTip

官方也已经给出方法:

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

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

 

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

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

 

3.行提示 RowTip

 

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

 

代码:

var myGrid = new Ext.grid.gridPanel(gridConfig);
myGrid.on('render', function(grid) {
    var store = grid.getStore();  // Capture the Store.

    var view = grid.getView();    // Capture the GridView.

    myGrid.tip = new Ext.ToolTip({
        target: view.mainBody,    // The overall target element.

        delegate: '.x-grid3-row', // Each grid row causes its own seperate show and hide.

        trackMouse: true,         // Moving within the row should not hide the tip.

        renderTo: document.body,  // Render immediately so that tip.body can be referenced prior to the first show.

        listeners: {              // Change content dynamically depending on which element triggered the show.

            beforeshow: function updateTipBody(tip) {
                var rowIndex = view.findRowIndex(tip.triggerElement);
                tip.body.dom.innerHTML = "Over Record ID " + store.getAt(rowIndex).id;
            }
        }
    });
});
 

 

4.其他方法

 

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

 

 

分享到:
评论
1 楼 飞火流星 2009-09-28  
要为下面的输入框添加qtip,该怎么做啊?
{
xtype:'textfield',
id:'w_tgmc',
fieldLabel: '图稿名称',
allowBlank:false,//该选项值不能为空
name: 'tgmc',
width: 250
}

相关推荐

    Extjs Grid 中的 ToolTip效果

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

    ExtJS grid过滤操作

    ExtJS Grid是一个强大的数据展示组件,它允许用户以表格的形式查看和操作大量数据。在实际应用中,数据过滤是常见的需求,以便用户能快速定位到感兴趣的信息。本篇将深入探讨ExtJS Grid的过滤操作,以及如何动态地对...

    ExtJS ToolTip功能

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

    EXTJS grid导出EXCEL文件

    要实现EXTJS Grid到Excel的导出,一般会涉及以下几个步骤: 1. **获取Grid数据**:首先,你需要从Grid的Store中获取所有显示的数据。这可以通过遍历Store中的记录并提取字段值来完成。 2. **格式化数据**:Excel...

    ExtJs Grid选择行

    在ExtJs框架中,Grid组件是一种非常常用的展示数据表格的方式,它提供了丰富的功能,包括数据的排序、分页、过滤以及行选择等。在实际应用中,经常需要根据用户交互来判断Grid中的行是否被选中,以便进行下一步的...

    extjs grid数据导出excel文件

    首先,我们要明白EXTJS Grid的数据导出到Excel的过程通常涉及到以下几个步骤: 1. **获取Grid数据**:在EXTJS中,Grid的数据存储在Store对象中。要导出数据,我们需要先从Store中获取所有的记录。这可以通过调用`...

    extjs grid

    3. **行编辑**:EXTJS Grid支持行内编辑,用户可以直接在表格中修改数据,提供了一种直观的数据输入方式。通过配置`editable`属性和`editors`,可以指定哪些列是可编辑的。 4. **分页**:Grid可以通过`...

    extjs grid示例代码

    ExtJS Grid是Sencha ExtJS框架中的一个核心组件,它用于构建数据驱动的表格视图。Grid组件在Web应用中广泛使用,因为它提供了强大的数据展示、排序、分页、筛选和编辑功能。以下是对`ExtJS Grid`示例代码的详细解析...

    ExtJS笔记---Grid实现后台分页

    这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...

    ExtJs grid多选时获取选中的所有值

    因此,掌握如何在ExtJs Grid中实现多选功能以及如何获取已选中的所有值是非常重要的。 #### 二、实现多选功能 在ExtJs中,实现Grid的多选功能主要通过`CheckboxSelectionModel`来完成。下面将详细介绍如何设置并...

    EXTJS Grid总结例子

    Grid的列配置是通过`columns`数组实现的,每个元素代表一列,可以设置列的标题、宽度、对齐方式、可编辑性等。例如: ```javascript columns: [{ text: 'Name', dataIndex: 'name', width: 200 }, { text: 'Age'...

    Extjs grid分页1

    在本文中,我们将深入探讨ExtJS Grid的分页功能及其实现方式。 首先,ExtJS Grid是一种强大的JavaScript组件,用于在Web应用中创建数据网格。它支持各种特性,如排序、过滤、分组、分页等。分页功能特别适用于处理...

    Extjs grid 中文排序问题修正

    EXTJS Grid的排序功能是基于其内部的Store对象实现的,Store中的每条记录都有一个对应的sortField和sortDir属性,用于记录当前的排序字段和排序方向。当你点击列头进行排序时,Grid会调用Store的sort方法,根据指定...

    extjs grid 多表头插件

    ExtJS Grid是一款强大的数据展示组件,常用于构建复杂的Web应用程序中的数据网格。多表头插件是ExtJS Grid的一个重要特性,它允许我们创建具有多层次、复杂结构的表头,以便更好地组织和呈现数据。在ExtJS Grid中,...

    EXTjs grid双层表头的实现 (源代码和示例)

    要实现EXTjs grid的双层表头,我们需要使用EXTjs的`column`配置和`headerContainer`组件。具体步骤如下: 1. 创建grid面板: 首先,创建一个EXTjs的grid面板,设置其基本属性,如store(数据源)和columns(列配置...

    Extjs Grid 扩展实例

    "Extjs Grid 扩展实例"是一个演示如何增强Grid功能的实践案例,通过这个实例,我们可以学习到如何在原有Grid的基础上进行自定义扩展,实现更复杂的数据管理和用户交互。 首先,"extend"在编程中通常意味着类的继承...

    ExtJS Grid功能实现

    ExtJS 表格的功能实现,包括单元格编辑,数据的获取。

    Extjs grid分页多选记忆功能

    很多同事在用extjs grid做分页的时候,往往会想用grid的多选功能来实现导出Excel之类的功能(也就是所谓的多选记忆功能),但在选选择下一页的时候 上一页选中的已经清除 这是因为做分页的时候又向服务器请求了分页...

    Extjs4.2 Grid filter Demo 表格过滤实验

    这是利用sencha cmd 生成的GridFilterDemo工程中的app和build文件夹,其余文件过大并且与主题无关,因此未包含。具体方法,请参看我的博客: 《Extjs4.2 Grid Filter Feature 表格过滤特性》

    ExtJS_grid.rar_Grid javascript_extjs grid

    ExtJS Grid是一款强大的JavaScript组件,用于在Web应用中创建数据密集型的表格视图。它由Sencha公司开发,是Ext JS库的核心部分,广泛应用于企业级应用的前端开发,提供丰富的功能和高度的可定制性。这个"ExtJS_grid...

Global site tag (gtag.js) - Google Analytics