2015-11-06 88 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