2015-11-06 87 views
1

我是ExtJS的新手,嘗試使用網格顯示tabPanel的每個選項卡內的一些數據。完成了,但是當我嘗試使用'cellClick'事件觸發'alert'彈出窗口來顯示單擊該單元格的這些數據時,我遇到了一些問題。ExtJS5 CellClick事件

這是(部分)我的代碼在這裏

xtype: 'tabpanel', 
     items:[{ 
       xtype: 'grid', 
       listeners: { 
        el:{ 
         'cellclick' : function(view, td, cellIndex, record, tr, rowIndex, e, eOpts){ 
          alert('Testing!'); 
         } 
        } 
       }, 
       store: *** 
       columns: *** 

這麼幾個問題:

  1. 一些例子不具有 '厄爾尼諾:{}',這是什麼呢?我必須添加它否則它不會編譯。別人怎麼可能?
  2. 無論我在此特定標籤內點擊哪個單元格,警報都不會被觸發。拼寫錯誤還是應該擺脫單引號(')?
+1

你可以告訴,你正在使用哪個ExtJS版本? –

+0

感謝您的回覆,我使用ExtJS5 – Joe

+0

根據此,​​https://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.grid.Panel-event-cellclick,它應該沒有問題,他們的方式你做(雖然,它不需要'EL') – Icepickle

回答

0

根據文檔,cellclick事件是您選擇的正確的事件。

另外,如果我在Sencha fiddle上試用它,它似乎沒有問題。我把基本的例子,從頁面並添加單元格單擊事件

Ext.create('Ext.grid.Panel', { 
    title: 'Simpsons', 
    store: Ext.data.StoreManager.lookup('simpsonsStore'), 
    columns: [ 
     { text: 'Name', dataIndex: 'name' }, 
     { text: 'Email', dataIndex: 'email', flex: 1 }, 
     { text: 'Phone', dataIndex: 'phone' } 
    ], 
    listeners: { 
     'cellclick': function() { 
      alert('hey'); 
     } 
    }, 
    height: 200, 
    width: 400, 
    renderTo: Ext.getBody() 
}); 

的EL表示HTML元素,據我所知,並且將意味着事件由創建的HTML元素觸發網格,而cellclick事件相當於網格的ExtJS事件。作爲一個例子,這也是可行的,但是突然點擊單元格的單元格時單擊單元格時單元格事件不會觸發的標題單元格會起作用。

請注意,我已經改變了事件點擊,而不是cellclick,如cellclick不是DOM事件

Ext.create('Ext.grid.Panel', { 
    title: 'Simpsons', 
    store: Ext.data.StoreManager.lookup('simpsonsStore'), 
    columns: [ 
     { text: 'Name', dataIndex: 'name' }, 
     { text: 'Email', dataIndex: 'email', flex: 1 }, 
     { text: 'Phone', dataIndex: 'phone' } 
    ], 
    listeners: { 
     click: { 
      element: 'el', 
      fn: function() { 
       alert('hey'); 
      } 
     } 
    }, 
    height: 200, 
    width: 400, 
    renderTo: Ext.getBody() 
}); 

你可以找到更多的聽衆配置選項documentation頁面上

順便說一句,給出足夠精確的ExtJS版本非常重要,因爲在一個主要版本中也有一些變化(並且每個Subversion有不同的文檔(例如:5.0.1,5.1.0 ,5.1.1,...)

+0

非常感謝您的回覆! – Joe

+0

答案几乎是正確的,但問題是:「在組件上設置」偵聽器「時,」el「屬性意味着什麼?」該文檔沒有在頂部使用'el'列出,它列出了列表中的'element':'new Ext.panel.Panel({0}標題:'The title', 聽衆:{ click:this.handlePanelClick , element:'body' } });'See http://docs.sencha.com/extjs/5.0/5.0.1-apidocs/#!/api/Ext.util.Observable-method-addListener –

+0

@JuanMendes是不是與'el'一起使用的clickrepeater? http://docs.sencha.com/extjs/5.0/5.0.1-apidocs/#!/api/Ext.util.ClickRepeater – Icepickle