2012-02-10 59 views
1

我想爲單列的2個單元格設置2個不同的工具提示消息,但在運行時單個提示消息將應用,即如果我點擊單元格關於if子句的條件那麼相同提示信息將被轉發到其餘的單元格,如果我從第一個單元格導航到2單元格消息不會改變第一單元格消息將繼續前進,反之亦然,如果我從第二單元格移動到1單元格第二個提示信息將保持不變爲其餘的細胞。編輯器備用提示消息

celldblclick : function(grid, rowIndex, columnIndex, e) { 
    var ed = grid.getColumnModel().getCellEditor(columnIndex,rowIndex) || {}; 
    ed = ed.field || {}; 

    if (rowIndex == 0 && columnIndex == 2) { 
     ed.qtipText="SAMPLE1"; 
    } else { 
     ed.qtipText="SAMPLE2"; 
    } 
} 
+1

你使用哪個版本的ext js? – Krzysztof 2012-02-10 14:44:15

回答

1

爲了讓他們展示不同的顯示之前我通常附加功能的工具提示beforeshow方法,更新提示:

// add tooltips to grid 
myGrid.getView().on('render', function(view) { 
    view.tip = Ext.create('Ext.tip.ToolTip', { 
     target: view.el, 
     delegate: view.itemSelector, 
     trackMouse: true, 
     minWidth: 0, 
     maxWidth: 800, 
     dismissDelay: 0, 
     showDelay: 800, 
     renderTo: Ext.getBody(), 
     listeners:{ 
      beforeshow: function updateTipBody(tip){ 
       text = view.getRecord(tip.triggerElement).get('tooltip') 
       tip.setWidth(text.length * 5); 
       tip.update(text); 
      } 
     } 
    }); 
}); 

在我有我的提示每個定義的上面的例子記錄在數據存儲本身,這就是爲什麼我打電話text = view.getRecord(tip.triggerElement).get('tooltip')('tooltip'是我的數據存儲與工具提示文本中的列)。但只要您在最後調用tip.update(yourLogic),您就可以在beforeshow偵聽器函數中實現您想要的任何邏輯。