Ext JS4学习教程+笔记(二)事件处理

ExtJS 4采用MVC的方式划分程序,事件响应代码的写法:

1,一般放到controller里面,

假设application里面写了
controllers:[
               'Users'
          ]
则控制器代码放到定义目录的app/controller/Users.js里面,写法如下:

Ext.define("MyApp.controller.User",{
               extend:'Ext.app.Controller',
               requires:['Ext.window.MessageBox'],
//这句不加下面的Ext.Msg.alert会出错!
               init:function(){
                    this.control({
                         'treepanel':{
                              itemclick:function(view,record){
                                    Ext.Msg.alert('你点击了',record.get('text'));
//打印树节点的名字
                              },
                              itemcontextmenu:function(view,record,item,index, e){   //添加右键菜单

                                   e.preventDefault();  //阻止浏览器事件
                                   e.stopEvent();  //阻止浏览器事件
                                   var nodemenu=new Ext.menu.Menu({
                                         floating:true,
                                        items:[{
                                         text:"新增组织机构",
                                         icon:'images/add.gif',
                                         iconCls:'leaf',
                                         handler:function(){
                                          alert("新增");
                                         }
                                        },{
                                         text:"编辑组织机构",
                                         icon:'images/leaf.gif',
                                         iconCls:'leaf',
                                         handler:function(){
                                          alert("编辑");
                                         }
                                        },{
                                         text:"删除组织机构",
                                         icon:'images/delete.gif',
                                         iconCls:'leaf',
                                         handler:function(){
                                          alert("删除");
                                         }
                                        }]
                                       });
                                     nodemenu.showAt(e.getXY()); //显示在鼠标的位置
                                }
                        
                         },
                         'treepanel2':{
                               itemclick:function(view,record){
                                   alert(Ext.getDisplayName(record));
                              }                        
                         }
                    }
                    );
               }
});

在init方法里面,调用this.control调用事件响应代码,'treepanel'表示Component Query语法,一般用xtype里表示的内容即可。
上述代码同时提供了为itemcontextmenu提供事件处理添加右键菜单的功能。

2,不采用MVC模式的代码,对于Panel, Window等面板,也有一个listeners属性,可以这样加入事件处理:

listeners:{
    itemdblclick:  function (){
        Ext.Msg.alert(  'helo' , 'db clicked'  );
    }
}
3,对于Button等组件,如果是默认的事件(如按钮的click),也可以直接用handler属性,例如:
handler:function(){
           alert('clicked!');         
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 6、Function类 ………………………… 6 7、Ext.Element类 ………………………… 7 8、Ext.DomQuery类 ………………… 13 9、Ext.DomHelper类 …………………… 14 10、Ext.Template类 …………………… 14 11、Ext.EventManager类 ……………… 15 12、Ext.EventObject类 ………………… 15 13、Ext.CompositeElement类 ………… 16 14、Ext.CompositeElementLite类 ……… 16 15、Ext.Fx类 …………………………… 16 16、Ext.KeyNav类 ……………………… 19 17、Ext.KeyMap类 …………………… 19 18、Ext.util.JSON类 ……………………… 20 19、Ext.util.Format类 ………………… 20 20、Ext.util.DelayedTask类 ……………… 20 21、Ext.util.TaskRunner类 …………… 21 22、Ext.util.TextMetrics类 …………… 21 23、Ext.XTemplate类 ………………… 21 24、Ext.data.Connection类 ……………… 22 25、Ext.Ajax类 ………………………… 22 26、Ext.data.Record类 ………………… 23 27、Ext.data.DataProxy类 …………… 24 28、Ext.data.HttpProxy类 …………… 24 29、Ext.data.MemoryProxy类 ……… 25 30、Ext.data.ScriptTagProxy类 ………… 25 31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 34、Ext.data.XmlReader类 …………… 27 35、Ext.data.Store类 …………………… 28 36、Ext.data.GroupingStore类 ………… 32 37、Ext.data.SimpleStore类 ………… 34 38、Ext.data.Tree类 …………………… 34 39、Ext.data.Node类 ………………… 34 40、Ext.Action类 ……………………… 35 41、Ext.Button类 …………………… 36 42、Ext.SplitButton类 ……………… 38 43、Ext.CycleButton类 ……………… 39 44、Ext.form.BasicForm类 …………… 40 45、Ext.form.Field类 …………………… 41 46、Ext.form.Checkbox类 …………… 42 47、Ext.form.Radio类 ………………… 43 48、Ext.form.HtmlEditor类 …………… 43 49、Ext.form.TextField类 …………… 44 50、Ext.form.NumberField类 ………… 44 51、Ext.form.TextArea类 …………… 45 52、Ext.form.TriggerField类 ……… 45 53、Ext.form.DateField类 ………… 45 54、Ext.form.ComboBox类 ……………… 46 55、Ext.form.TimeField类 ………… 47 56、Ext.menu.Menu类 ………………… 50 57、Ext.menu.BaseItem类 …………… 50 58、Ext.menu.Adapter类 ……………… 51 59、Ext.menu.Item类 ………………… 51 60、Ext.menu.CheckItem类 …………… 51 61、Ext.menu.Separator类 ………… 52 62、Ext.menu.TextItem类 …………… 52 63、Ext.Toolbar类 …………………… 55 64、Ext.Toolbar.Item类 ……………… 56 65、Ext.Toolbar.Separator类 ……… 56 66、Ext.Toolbar.Spacer类 …………… 56 67、Ext.Toolbar.TextItem类 ……… 56 68、Ext.Toolbar.Fill类 ……………… 56 69、Ext.grid.ColumnModel类 ……… 58 70、Ext.grid.PropertyColumnModel类 … 59 71、Ext.grid.GridView类 …………… 59 72、Ext.grid.GroupingView类 ………… 60 73、Ext.grid.EditorGridPanel类 ……… 62 74、Ext.grid.PropertyGrid类 …………… 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值