2011-05-06 55 views
4

我通過我自己的renderrer渲染ExtJS的電網自定義鏈接:渲染中使用自定義網格單元格鏈接「點擊」處理器

function renderLink(val) { 
    return '<a href="javascript:void(0);">' + val + '</a>'; 
} 

什麼是「單擊」事件偵聽器附加到它的最簡單方法?

當然在網格中的所有行之後呈現我可以通過從網格存儲中的每個記錄,並在每個迭代它:

Ext.get('....').on('click', ....); 

但對我來說這聽起來是解決辦法不是真正的解決方案......是有沒有更好的方法?

回答

0

試試這個:

function renderLink(val){ 
    return '<a href="javascript:void(0);" onclick="someMethod(); return false;">' + val + '</a>'; 
+0

這種方法的問題在於,處理程序方法是一個對象的內部方法,我在其中處理網格,所以我無法從'onclick =「全局訪問它。 ..「',這就是爲什麼我需要通過ExtJS'Element.on'方法附加它... – Laimoncijus 2011-05-06 12:41:10

+0

難道不可能創建包含該方法的對象,然後調用該對象上的方法嗎?一個全局函數將揭示這種方法? – shane87 2011-05-06 12:56:23

0

您可以將點擊事件例如與DBLCLICK聽衆:

listeners: { 
     dblclick : { 
      fn: function() { 
       var selectedRecord = Ext.getCmp('ObjectsGrid').getSelectionModel().getSelection()[0]; 
       console.log(selectedRecord); 


      }, 
      element: 'body' 
     } 
    } 

所有列值可以通過的console.log(selectedRecord)可以看出:

相關問題