ExtJS:菜单ComboBox及级联菜单应用

首页一级菜单查询分组,二级菜单查询分组中的车辆信息。

定义分组数据模型:

Ext.define(
			‘group‘,
			{
				extend:‘Ext.data.Model‘,
				fields:[
				        {name:‘groupid‘,mapping:‘groupid‘,type:‘int‘},
				        {name:‘groupname‘,mapping:‘groupname‘,type:‘string‘}
				]
			}
		);

定义分组groupStore:

var groupStore = Ext.create(‘Ext.data.Store‘, {
			model:‘group‘,
			proxy : {
				type:‘ajax‘,
				url : ‘group/getgroup‘  ,//请求url
				reader : ({
					type:‘json‘,
					totalProperty: "totalAllGroup",  //totalRecords属性由json.results得到
					successProperty: true,    //json数据中,保存是否返回成功的属性名
					root: ‘dataOfAllGroup‘  ,        //构造元数据的数组由json.rows得到
					//idProperty : "id"
       		}),
       	autoLoad:true,
	    remoteSort:true
	}});
	groupStore.load();//加载数据

定义分组ComboBox

var groupCombo = Ext.create(‘Ext.form.ComboBox‘, {
		id : ‘group‘,
		fieldLabel : ‘所属部门‘,
		labelSeparator : ‘:‘,
		labelWidth: 80,
		triggerAction : ‘all‘,
		store : groupStore,
		displayField : ‘groupname‘,
		valueField : ‘groupid‘,
		loadingText : ‘正在加载数据...‘,
		queryMode : ‘local‘,
		forceSelection : true,
		value: ‘‘,
		typeAhead : true,
		width: 240,
		allowBlank:false,
    	margin: ‘3 5 3 10‘,
    	emptyText : ‘请选择所属部门‘,
    	listeners:{     //用于二级菜单,若是单菜单可注释掉该监听事件
    		select : function(combo, record,index){
    			Ext.getCmp(‘device‘).clearValue();//上级combo在select事件中清除下级的value
    			Ext.getCmp(‘device‘).getStore().load({
    				url: ‘device/getdevice/‘ + combo.value,
    			});
    		}
      }
	});

以上是单菜单的代码,添加二级菜单,参考下面:

定义车辆数据模型:

	Ext.define(
			‘model‘,
			{
				extend:‘Ext.data.Model‘,
				fields:[
				        {name:‘id‘,mapping:‘id‘,type:‘int‘},
				        {name:‘carno‘,mapping:‘carno‘,type:‘string‘}
				]
			}
		);

定义车辆deviceStore:

	var deviceStore = Ext.create(‘Ext.data.Store‘, {
			model:‘model‘,
			proxy : {
				type:‘ajax‘,
				url : ‘device/getdevice‘  ,
				reader : ({
					type:‘json‘,
					totalProperty: "totalAllDevice",  //totalRecords属性由json.results得到
					successProperty: true,    //json数据中,保存是否返回成功的属性名
					root: ‘dataOfAllDevice‘  ,        //构造元数据的数组由json.rows得到
					//idProperty : "id"
       		}),
	}});

定义车辆ComboBox

var deviceCombo = Ext.create(‘Ext.form.ComboBox‘, {
		id : ‘device‘,
		fieldLabel : ‘车牌号‘,
		labelSeparator : ‘:‘,
		labelWidth: 80,
		triggerAction : ‘all‘,
		store : deviceStore,
		displayField : ‘carno‘,
		valueField : ‘carno‘,
		loadingText : ‘正在加载数据...‘,
		queryMode : ‘local‘,
		forceSelection : true,
		value: ‘‘,
		typeAhead : true,
		width: 240,
		allowBlank:false,
    	margin: ‘3 5 3 10‘,
    	emptyText : ‘请选择查询的车辆‘
	});

重点在于:queryMode : ‘local‘,如果不选择从本地获取数据源,则会重新去远程remote获取。

时间: 2025-01-06 13:55:29

ExtJS:菜单ComboBox及级联菜单应用的相关文章

级联菜单

利用二维数组和jQuery实现级联菜单,代码如下: 1.html代码 <div class="form_class"> <label>地址</label> <select name="province" id="province></select> <select name="city" id="city"></select> <

[伪] 级联菜单,两级菜单

[伪] 级联菜单,两级菜单 这段时间需要做一个类似效果的一个菜单样式,所以就查了各种文档,各种百度各种搜索,的确也是搜到了不少的第三方组件,比如(CascadingMenuViewLib)就是其中一个,但是,我脑子笨,研究了3天左右的时间,改不成我需要得样子,So...我用我自己的方式,实现了这个效果(对了,还没有完全实现,因为TextView被点中的样式我还没有设置,不过这都是小事情了..) 在这里,我提供一个思路,代码很简单,当然,我也会附一些上来,好的,我首先说一下思路 首先,我们的xml

WinForm多窗体间操作,ComboBox下拉菜单控件

1.通过操作一个窗体打开另一个窗体 已有窗体为Form1.Form1中有一个按钮,对该按钮编写点击事件: Form2 f2 = new Form2();f2.Show(); 通过这段代码来打开Form2. 在实际应用中会出现代开Form2后需要Form1隐藏的情况,此时可以加入代码:this.Hide();来实现隐藏Form1. [不能关闭Form1,如果关闭Form1,那么Form2也会关闭,因为Form1是主窗体] 2.在窗体之间进行值的传递 在某些情况下,需要用到某个已经获取到的值,为了提

JS实战 &#183; 级联菜单选择省份和城市(两种)

DOM编程步骤.思路 1.定义界面: 通过html标签将数据进行封装: 2.定义一些静态样式: 利用css: 3.需要动态地完成的和用户的交互: a:明确事件源: b:明确事件,将事件注册到事件源上: c:通过JS的函数对象对事件进行封装: d:在处理过程中需要明确处理区域. 代码一如下: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta htt

Excel操作之级联菜单

设置级联菜单主要用的是excel的数据验证功能.下面以简单的设置城市选择框为例: 1.准备好数据 2.给所有省份起个名称(例如:省份),然后同样方法给每个省份所对应的城市以其省份命名,(例如:南京.苏州的命名是江苏省) 3.设置省份下拉框,数据--数据验证--数据验证,验证条件选择序列,来源设置为=省份 设置完成后的效果如下: 4.设置二级菜单,同样数据--数据验证--数据验证,验证条件选择序列,这里的来源需要用到一个函数,来源设置为=INDIRECT(A7),A7是前面省份所在的单元格,如图:

通达OA 太牛了!工作流表单设计中级联菜单原来可以这样实现(图文)

在做程序时,经常会有使用级联菜单这样的情况,比如选择行政区域这样的时候.使用通达的表单设计器来做这个需求时,一般都是怎样研究使用js来做级联菜单,略显复杂.今天突然发现原来通达在实现这个需求时居然有特别简单的实现方法,这里一块看一下. 做完的效果,看这里: 实现过程: 先添加一个下拉列表,关键地方就是在"关联子菜单名称"这里写上关联的下级菜单名字. 第二级菜单设置: 第三级菜单设置: 版权声明:本文为博主原创文章,未经博主允许不得转载.

js实现级联菜单(没有后台)

html代码: <!-- js级联菜单 --> <div id="cascMenu"> <select id="select" onchange="getLocal(this.selectedIndex)"> <option>请选择</option><!-- selectedIndex=0 --> <option>北京</option><!--

使用json方式实现省市两级下拉级联菜单[原创]

本文为博主原创,转载请注明. 首先看一下实现后的效果图: 当然,要完成这个实验,mysql必须与数据库连接,这里选用navicat for mysql这款软件,它与mysql的契合度是很高的,配置环境不多赘述,注意修改一下php的配置文件php.ini文件,将mysql.dll前面的那个“;”去掉,不然总会报数据库连接函数的错. 将以上配置好后就进入代码阶段了,闲话不多说,直接上代码: //2-7-3.php:<!DOCTYPE html> <html lang="en&quo

ios开发级联菜单(利用父子控制器--两个菜单封装为两个子控制器来实现)

一:1:级联菜单可以使用两个tableView来实现,也可以利用父子控制器,两个控制器来实现,根视图控制器作为两个控制器的父控制器,来管理两个子控制器.2:将左右菜单分别交给两个控制器去管理,对于一些复杂的业务逻辑,涉及大量回调操作,业务逻辑也要相对复杂,则不建议采取封装成view去处理,最好还是利用一个控制器去管理其内部复杂的业务逻辑,具体做法就是:利用父子控制器,将子控制器交由父控制器去管理,将子控制器的view添加到父控制器的view上.效果如图: 二:代码 1:根控制器代码:添加两个子控