在列表项“tapped”时,在Sencha Touch中创建操作表

时间:2011-03-17 19:27:37

标签: javascript extjs sencha-touch

我有一个从Sencha Touch中的JSON数据生成的List。实质上,该列表是从Data Store对象生成的,并充当联系人列表。我想知道如何添加功能,以便当用户点击其中一个列表项时,Sencha Touch中会显示一个操作表,提供许多操作(例如“呼叫”,“发送消息”和“删除” “)。

这是我用来生成ListvIew的代码:

var listView = new Ext.List({
    store: friendStore,
    itemTpl: '{forename} {surname}<br />{phoneNumber}',
    grouped: true,
    indexBar: true
});

我知道我可以使用on参数,但这会将tap事件附加到List,而不是每个项目。显示的操作表将包含一些链接以及tel://,因此它也需要是动态的(因为要调用的电话号码也存储在密钥{phoneNumber}

希望有道理......

2 个答案:

答案 0 :(得分:1)

ListView有一个你应该听的itemtap事件。来自文档:

itemtap : ( Ext.DataView view, Number index, Ext.Element item, Ext.EventObject e )

要获取与被点击项对应的记录,只需执行view.getStore()。getAt(index)。然后在您的事件处理程序中,根据记录中的数据重新创建ActionSheet并显示它。

同时将侦听器附加到列表比附加到每个单独的项目更有效。

答案 1 :(得分:0)

这不是一个很好的答案,但我会查看DataView,它是List的父级。

它有一个名为itemSelector的属性,您可以使用它来指定列表条目的子部分。如果使用itemSelector,还必须提供tpl属性。