如何将自定义css工具提示添加到extjs列标题?

时间:2012-02-23 17:02:08

标签: extjs extjs4

我是extjs的新手。我试图根据列标题添加工具提示,最好是css。 如何使用css将自定义工具提示添加到extjs列标题? extjs的默认方式似乎不起作用。

我尝试使用自定义css工具提示作为标题但它没有用。在extjs中是否可以在标题上自定义工具提示?

由于

var listView = Ext.create('Ext.grid.Panel', {
      store: mystore,
      multiSelect: true,
      splitHandleWidth: 10,
      columnLines: true,
       viewConfig: {
        emptyText: 'No images to display'
      },

      renderTo: containerEl,

      columns: [{
        text: '<a href="#" class="ttip" title="'+m.i18n.getString('notif.class')+'">'+e.i18n.getString('notif.class')+'<span class="classic">'+e.i18n.getString('notif.class')+'</span></a>',
        flex: 10,
        dataIndex: 'CName',
        tooltip: 'C Name Some name test',

        renderer: function (value, metaData, record) {
                    return Ext.String.format('<a href="#" class="tooltip2" >{0}<span>{0}</span></a>', value);
                }
      }, {
        text: getString('notif.instance'),
        flex: 30,
        dataIndex: 'IDisplayName',
        renderer: function (value, metaData, record) {


   return Ext.String.format('<a href="#" class="tooltip2" >{0}<span>{0}</span></a>', value);
                }
      }]
    });

CSS

     .ttip {
            border-bottom: 0px dotted #000000; color: #000000; outline: none;
    /*        cursor: help; */
             text-decoration: none;
            position: relative;
        }
        .ttip span {
            margin-left: -999em;
            position: absolute;text-decoration: none;
        }
        .ttip:hover,.ttip:active, .ttip:link,.ttip:visited{text-decoration: none; color:#000;}
        .ttip:hover span {
            border-radius: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; 
            box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
            font-family: Calibri, Tahoma, Geneva, sans-serif;
            position: absolute; left: 1em; top: 2em; z-index: 9999999;
            margin-left: 0; width: 250px; 
        }
        .ttip:hover img {
            border: 0; margin: -10px 0 0 -55px;
            float: left; position: absolute;
        }
        .ttip:hover em {
            font-family: Candara, Tahoma, Geneva, sans-serif; font-size: 1.2em; font-weight: bold;
            display: block; padding: 0.2em 0 0.6em 0;
        }
        .classic { padding: 0.8em 1em; }
        .custom { padding: 0.5em 0.8em 0.8em 2em; }
        * html a:hover { background: transparent; }
        .classic {background: #FFFFAA; border: 1px solid #FFAD33; }
        .critical { background: #FFCCAA; border: 1px solid #FF3334;    }
        .help { background: #9FDAEE; border: 1px solid #2BB0D7;    }
        .info { background: #9FDAEE; border: 1px solid #2BB0D7;    }
        .warning { background: #FFFFAA; border: 1px solid #FFAD33; }

​

2 个答案:

答案 0 :(得分:3)

所以,我注意到你为商店提供了代码,但是你问了一个关于网格的问题,这是一个不同的组件。确保您了解网格和商店之间的关系。您还应该使用模型定义而不是在商店中配置字段 - 这是旧的做事方式。

话虽如此,我确实想出了一个有趣的解决方案:如何在列标题中添加工具提示。

列定义包含一个转换为列标题的“text”属性。文档声明允许使用HTML标记,这意味着您可以通过以下方式设置工具提示:

text: '<span data-qtip="hello">First Name</span>'

其中data-qtip提供工具提示的文本。 请注意,必须通过以下方式启用工具提示: 您应用中的Ext.QuickTips.init();

要尝试其他内容,请使用文档实时预览功能快速测试不同的配置并查看它们的运行情况。 http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.column.Column

更新:工具提示属性现在(自4.1x开始)可用于列配置。使用它。

答案 1 :(得分:0)

在列的定义中,您只需要设置tooltip参数,如下所示:

var cm =  new Ext.grid.ColumnModel([
  {
    xtype: 'column',
    header: '<img src="../images/lupa.png">',
    align: 'center',
    dataIndex: 'consultar',
    width: 50,
    sortable: true,
    menuDisabled: true,
    tooltip: 'Permisos para consultar, si lo desactiva el usuario no verá el modulo'
  }
 ]);

我希望这可以帮到你