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

本文介绍了ExtJS中Grid Tooltip的多种实现方法,包括表头提示、单元格提示及行提示等。通过代码示例展示了如何利用Ext.QuickTips、Ext.ToolTip等组件定制Tooltip,并针对ExtJS 3.0新增的特性进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文总结了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... 这个方式请无视吧

 

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值