sencha touch dataview 中添加 button 等复杂布局并添加监听事件
config 中的属性默认都会自动生成 getter setter applier updater 四个方法。
applier 在调用 setter 时被调用, updater 在属性值被改变时调用
Ext.application({
launch: function () { // DataItem 相当与 list 中的一行 (row)
// 对应 store 中的一条数据
// 相当于 适配器
Ext.define('MyListItem', {
extend: 'Ext.dataview.component.DataItem',
requires: ['Ext.Button'],
xtype: 'mylistitem', config: {
// 水平布局
layout: 'hbox', // 每行有一个 panel 和 两个 button
employeeName: true,
callButton: true,
smsButton: true, defaults: {
// padding:10
margin: 5
},
// 当控件实例化时可调用一个方法初始化
// 在这里将 view 与 data 关联起来
dataMap: {
getEmployeeName: {
setHtml: 'name'
},
getCallButton: {
// setText: 'name'
},
getSmsButton: {
// setText: 'name'
}
}
}, // apply 时实例化该控件
applyEmployeeName: function (config) {
return Ext.factory({flex: 1}, Ext.Panel, this.getEmployeeName());
},
applyCallButton: function (config) {
return Ext.factory({text: '打电话'}, Ext.Button, this.getCallButton());
},
applySmsButton: function (config) {
return Ext.factory({text: '发短信'}, Ext.Button, this.getSmsButton());
}, updateEmployeeName: function (newEmployeeName, oldEmployeeName) {
if (oldEmployeeName) {
this.remove(oldEmployeeName);
} if (newEmployeeName) {
this.add(newEmployeeName);
}
}, updateCallButton: function (newcallButton, oldcallButton) {
if (oldcallButton) {
this.remove(oldcallButton);
} if (newcallButton) {
// update 时绑定一个 tap 事件
newcallButton.on('tap', this.oncallButtonTap, this); this.add(newcallButton);
}
}, updateSmsButton: function (newsmsButton, oldsmsButton) {
if (oldsmsButton) {
this.remove(oldsmsButton);
} if (newsmsButton) {
newsmsButton.on('tap', this.onsmsButtonTap, this); this.add(newsmsButton);
}
}, oncallButtonTap: function (button, e) {
var record = this.getRecord(); Ext.Msg.alert(
'Hello',
record.get('name')
);
}, onsmsButtonTap: function (button, e) {
var record = this.getRecord(); Ext.Msg.alert(
'Hello',
record.get('name')
);
}
}); Ext.create('Ext.DataView', {
fullscreen: true, store: {
fields: ['name'],
data: [
{name: 'Leslie'},
{name: 'Allan'},
{name: 'Caitlin'},
{name: 'Peter'}
]
},
// 必须设置
useComponents: true,
// 指定每一行的布局
defaultType: 'mylistitem'
}); }
});
sencha touch dataview 中添加 button 等复杂布局并添加监听事件的更多相关文章
- Android中Button的五种监听事件
简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activ ...
- Second Day: 关于Button监听事件的三种方法(匿名类、外部类、继承接口)
第一种:通过匿名类实现对Button事件的监听 首先在XML文件中拖入一个Button按钮,并设好ID,其次在主文件.java中进行控件初始化(Private声明),随后通过SetOnClickLis ...
- Android 给按钮添加监听事件
在安卓开发中,如果要给一个按钮添加监听事件的话,有以下三种实现方式 1.方式一 public class MainActivity extends ActionBarActivity { @Overr ...
- jquery中,使用append增加元素时,该元素的绑定监听事件失效
举例:如果在一个<div id="resultArea"></div>中,通过append添加一个id="checkOutTip"的文本 ...
- miniui 给表格行添加监听事件的几种方法以及点击某列列名数据不能排序的问题
最近在使用miniui框架做开发,在做表格行的点击监听事件中发现了几个属性,都可以起到监听效果但是执行的结果却大有不同.好了废话不多说,直接上代码. <div id="pageGrid ...
- jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法
$("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...
- EventTrigger动态添加监听事件
在 Unity3D 中,通过拖拽的方式在 EventTrigger 组件中添加监听事件就不多说了,很简单.这里主要说的是通过代码动态往 EventTrigger 组件中添加监听事件,有个很坑的地方,就 ...
- JPanel添加键盘监听事件
因为在自己的游戏需求中谢了要用键盘控制飞机的移动,所以用到键盘监听事件,但是使用了JPanel之后添加了键盘监听事件,按相应的方向键飞机并没有反应.但是如果是为JFrame的内容面板加则会有反应. 为 ...
- java中的监听事件
java监听器实现的类 1.ServletContextListener:对servlet上下文的创建和销毁监听 2.ServletContextAttributeListener:监听servlet ...
随机推荐
- 关于搜索elasticsearch的数据条数大于10000的坑 max_result_window的两种设置方式
当用elasticsearch进行深度分页查询时的size-from大于10000的时候,就会报错“”, 官方推荐是scroll查询返回结果是无序的不满足业务需求,所以还是通过设置最大返回结果数来达到 ...
- NYTimes Objective-C 编程风格指南
转自eseedo的博客 [微博] NYTimes Objective-C 编程风格指南.来源:https://github.com/NYTimes/objective-c-style-guide ...
- Android-AIDL调用Android操作系统Music的方式来播放音乐
Android操作系统Music源码修改:把包名,各种命名都修改成自己的 修改Android操作系统Music源码,把后台播放核心服务对外暴漏: <!-- 核心服务 --> <!-- ...
- 直接导入用户信息到discuz ucenter.
上一篇帖子: 直接导入帖子到Discuz 论坛数据库. 结束时说要写一篇导入用户的帖子, 一直没时间, 但是咱不能做太监,不是? 所以今天赶快补上. 在做discuz整合或者迁移是, 很多人可能遇到相 ...
- 【原创翻译】ArcGis Android 10.2.4更新内容简介
翻译不当和错误之处敬请指出 更新内容官方描述 https://developers.arcgis.com/android/guide/release-notes-10-2-4.htm 10.2.4的版 ...
- 折腾了两天的跨站脚本提交问题,与IIS7有关
根据这里提供的方法,本地测试通过没有问题,但是部署到服务器上之后,只有GET请求可以跨站提交,POST请求继续报错,折腾了两天之后觉得,是不是IIS7的问题?果然,找到了这篇文章,照做之后解决.
- jmeter接口测试注意点
1:许多接口访问前会鉴权,不能直接访问.需要给线程组加上cookies管理. 2:第二个接口的入参是第一个接口的返回,需要先调第一个接口,在第一个接口后加后置处理器,如正则表达式提取器,提取参数供后面 ...
- Windows 2012 R2版本下部署IIS网站
Windows 2012 R2是一个比较稳定的服务器版本,本文分享一篇在Windows 2012 R2版本下搭建IIS项目的操作流程. 1. 安装IIS Web服务器 打开远程桌面->控制面板- ...
- emacs 考场配置
先存在这里,免得等回来乱搞的时候把自己的配置搞丢了qwq (custom-set-variables '(custom-enabled-themes (quote (tango-dark)))) (c ...
- 解决$ git clone fatal: Authentication failed
今天在使用git clone克隆项目的时候报如下错误: $ git clone XXXXXX Cloning into 'XXXX'... fatal: Authentication failed f ...