2013-08-19 68 views
1

我一直在嘗試添加一個工具提示,當您將鼠標懸停在Ext.grid.Panel中的單元格上時彈出。使用meta.tdAttr的網格列渲染器工具提示

但是,對於列的渲染器函數的參數「元」不具有tdAttr屬性!

renderer : function(value, meta, record, row, col) { 
    if (value == 1 && record.data.state === 'Accepted') { 
     meta.tdCls = 'green'; 
     console.log('value',value); 
     console.log('meta',meta); 
     console.log('meta.tdAttr',meta.tdAttr); 
     console.log('meta.style',meta.style); 
     meta.tdAttr = 'data-qtip="' + value + '"'; 
     return record.data.id; 
    } else if (value == 1 && record.data.state === 'Initial Version') { 
     meta.tdCls = 'white'; 
     return record.data.id; 
    } else if (value == 1) { 
     meta.tdCls = 'red'; 
     return record.data.id; 
    } else { 
     return ''; 
    } 
} 

樣本控制檯輸出:

value 1 
meta Object {tdCls: "", style: ""} 
meta.tdAttr undefined 
meta.style 

我覺得我可能會丟失在網格視圖或網格面板的一些設置,但對於財產甚至沒有可用的元參數似乎奇怪。從文檔:

metaData:Object 關於當前單元格的元數據的集合;可以由渲染器使用或修改。可識別的屬性有:tdCls,tdAttr和樣式。

+0

你在什麼版本的Ext JS上? –

+0

Ext version 4.1.1.1 –

+0

我們的版本完全相同,代碼'meta.tdAttr ='data-qtip =''+ value +'「';'工作得很好。你可以在JS小提琴或任何東西上覆制這個問題嗎? –

回答

1

我不知道爲什麼該設置是不存在,首先,可是我手動添加它來解決這個問題:

meta['tdAttr'] = 'data-qtip="' + value + '"'; 

和它的工作!

+0

如果您不能相信價值,這是HTML注入風險。 (我剛剛在代碼審查中發現了這一點,並向開發人員發送了他的應用程序屏幕截圖,顯示警報「您已被黑客入侵」) –

0

我有動態顯示操作欄中的單元格工具提示的經驗,應該有所幫助。

 { 
      xtype: 'actioncolumn', 
      name: 'payment', 
      width: 70, 
      align: 'center', 
      dataIndex: 'uid', 
      menuDisabled: 'true', 
      text: 'xxx', 
      sortable: false, 
      fixed: 'true', 
      renderer: function (value, metadata, record) { 
       if (value == '0') { 
        metadata.tdCls = 'pay-icon'; 
       } 
       else { 
        metadata.tdCls = 'paid-icon' 
       } 
      }, 
      getTip: function (value, metadata, record) { 
       if (value == '0') { 
        return 'for pay'; 
       } else { 
        return 'paid'; 
       } 
      } 
     } 
+0

Action列並非真正用於這種方式 - 我希望它能夠在懸停上工作,但這並沒有真正實現。 –