Extjs4.2.0 Grid 的单元格提示

官方docs有个例子,给出的是行提示

var view = grid.getView();
var tip = Ext.create('Ext.tip.ToolTip', {
    // The overall target element.
    target: view.el,
    // Each grid row causes its own separate show and hide.
    delegate: view.itemSelector,//选择器这里选择'tr.x-grid-row';被选择器选中的元素都会添加tip
    // Moving within the row should not hide the tip.
    trackMouse: true,
    // Render immediately so that tip.body can be referenced prior to the first show.
    renderTo: Ext.getBody(),
    listeners: {
        // Change content dynamically depending on which element triggered the show.
        beforeshow: function updateTipBody(tip) {
       //view.getRecord(tip.triggerElement)//参数是Ext.Element/HTMLElement;当前使用的是 HTMLElement tr元素 tip.update(
'Over company "' + view.getRecord(tip.triggerElement).get('company') + '"'); } } });

/*
可见如果要改成单元格提示
1.更改选择器参数为 单元格,可以通过fierbug 查看你所需要的元素特征来设置
2.getRecord 需要一个 HTMLElement(表格行tr)参数;当我们的选择器选中了(td),可以通过 (td).parentElement 获取HTMLElement(表格行tr),完成参数设定
*/

 修改后的源代码如下

var view = grid.getView();
var tip = Ext.create('Ext.tip.ToolTip', {
    // The overall target element.
    title : 'Detail',
    minWidth : 800,
    maxWidth : 800,
    minHeight : 200,
    maxHeight : 200,
    showDelay : 1000,
    autoHide : false,
    target : view.el,
    // Each grid row causes its own separate show and hide.
    delegate : '.x-grid-cell-special',
    // Moving within the row should not hide the tip.
    trackMouse : true,
    // Render immediately so that tip.body can be referenced prior to
    // the first show.
    renderTo : Ext.getBody(),
    listeners : {
        // Change content dynamically depending on which element
        // triggered the show.
        beforeshow : function updateTipBody(tip) {
            if (Ext.EventObject.getCharCode() !== Ext.EventObject.ALT)//按住alt键才提示
                return false;
            var vid = view.getRecord(tip.triggerElement.parentElement).get('Fid');
            // var vid = view.getRecord(tip.triggerElement).get('Fid');
            tip
                    .update('<iframe frameborder="0" width="780" height="180" src=S/xs_markets/xs_markets_list_data.asp?Act=getDetail&Fid='
                            + vid + '&pp=0></iframe>');
        }
    }
});

 

posted on 2013-05-27 12:40  xsSystem  阅读(667)  评论(0编辑  收藏  举报