2012-03-01 51 views
0

我有一个dataView,我将数据绑定到一个表。这是一个复杂的数据,我必须为每个表格单元绑定点击事件。我不知道Sencha Touch如何做到这一点,但jQuery和jQMobile也完成了同样的工作。如何在Sencha Touch中添加表格单元格的点按事件?

这是我的代码。

var touchTeam = Ext.create('Ext.DataView', { 
     fullscreen: true, 
     items:[{ 
      xtype:'toolbar', 
      title:'Dashboard', 
      docked:'top', 
      items:[{ 
       iconCls:'home', 
       iconMask:true, 
       ui:'confirm' 
      },{ 
       xtype:'spacer' 
      },{ 
       xtype:'button', 
       text:'Logout', 
       ui:'decline', 
       handler:function(){ 
        Ext.Msg.confirm('ALERT','Are you sure that you want to logout?',Ext.emptyFn); 
       } 
      }] 
     },{ 
      xtype:'toolbar', 
      docked:'bottom' 
     }], 
     store: { 
      fields: ['AAAA', 'BBBB', 'CCCC', 'DDDD', 'EEEE'], 
      data: [ 
       {AAAA: 'TableRow1', BBBB: 0,CCCC:4,DDDD:2,EEEE:0}, 
       {AAAA: 'TableRow2', BBBB: 0,CCCC:0,DDDD:0,EEEE:0}, 
       {AAAA: 'TableRow3', BBBB: 0,CCCC:0,DDDD:0,EEEE:0}, 
       {AAAA: 'TableRow4', BBBB: 0,CCCC:0,DDDD:0,EEEE:0}, 
      ] 
     }, 
     itemTpl:'<table border="0" cellpadding="5" cellspacing="5" style="width:100%; margin-top:10px;"><tr><td style="width:20%; text-align: center;">{AAAA}</td><td style="width:20%; text-align: center;">{BBBB}</td><td style="width:20%; text-align: center;">{CCCC}</td><td style="width:20%; text-align: center;">{DDDD}</td><td style="width:20%; text-align: center;">{EEEE}</td></tr></table>' 
    }); 

回答

2

您需要在数据视图中附加“itemtap”侦听器。在函数内部,你必须检查目标元素。

listeners : { 
    scope : this, 
    itemtap : function(dataview, index, el, record, e){ 
     //Browser event e 
     console.log(e.target, el); 
    } 
} 
+0

是它的工作做在<td>。但是我有什么选择来选择tapped元素的属性吗?例如。我与​​rowid,所以如何选择ID? jQuery:'$(“td#cellID”)。attr(rowid)'。 – 2012-03-02 04:02:38

+1

您可以检查e.target元素和Ext.get(e.target).getAttribute('id');会给你组件的ID。在Sencha API文档中检查Element类。 – Swar 2012-03-02 06:16:18

+0

感谢您的回答。 Sencha Touch 2有没有网格?在网格上使用时可以得到相同的结果吗? – 2012-03-02 07:19:15

1

如果您正在使用的JavaScript,你可以通过添加此

'<td class="width" style="color:black;" onClick="javascript:nameTaps">{Name}</td>', 
+0

但单击单元格时,我需要显示与单击单元格对应的另一组数据。如果我使用你的方法,我怎么做到这一点? – 2012-03-02 07:49:40

+1

因为你需要传递参数像onClick =“javascript:NameTap(\'{Name} \',{ID})” – Nag 2012-03-02 08:25:41

+0

感谢Nag会肯定地尝试。 – 2012-03-02 10:08:51

相关问题