菜单的定义
下面我们来定义一个菜单,它包括一个下拉列表,还有颜色选择器,日期选择器等菜单项。
代码如下 | 复制代码 |
[Js] //下定义一个下拉列表 var combo = Ext.create('Ext.form.ComboBox', { store: new Ext.data.ArrayStore({ fields: ['id', 'name'], data: [[1, "张三"], [2, "李四"], [3, "王五"], [4, "赵六"]] }), displayField: 'name', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText: '请选择..', selectOnFocus: true, width: 135 }); //这里是菜单的定义 |
2.把菜单附加到面板工具栏
我们定义一个面板,然后通过刚刚定义的菜单实现菜单栏。
代码如下 | 复制代码 |
[Js] //把菜单附加到工具栏上 var panel = new Ext.Panel({ renderTo: 'div1', width: 600, height: 250, collapsible: true, layout: 'fit', title: '演示工具栏', tbar: [{ text: "菜单", menu: menu}] }); |
下面看看展示效果:
2.实现右键菜单
还是用第一步定义的菜单,现在我们通过右键事件的方式实现右键菜单:
代码如下 | 复制代码 |
[Js] //定义右键菜单 Ext.getDoc().on('contextmenu', function (e, o) { e.preventDefault(); menu.showAt(e.getXY()); //第二种写法: |
单击右键,效果如下:
3.在ListView中定义右键菜单
这里我们借用第11篇的ListView,我们要实现当数据行右键单击时,弹出菜单的效果。
代码如下 | 复制代码 |
[Js] var store = new Ext.data.JsonStore({ fields: [ { name: 'IntData', type: 'int' }, { name: 'StringData', type: 'string' }, { name: 'TimeData', type: 'date' } ], proxy: { type: 'ajax', url: 'ListView1Json', reader: { type: 'json', root: 'rows' } }, sortInfo: { field: 'IntData', direction: 'DESC' } }); store.load(); var listView = Ext.create('Ext.ListView', { |
在ListView中单击右键,效果如下: