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

定义分组数据模型:

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获取。

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

  1. JS实战 · 级联菜单选择省份和城市(两种)

    DOM编程步骤.思路 1.定义界面:      通过html标签将数据进行封装: 2.定义一些静态样式:      利用css: 3.需要动态地完成的和用户的交互:      a:明确事件源:     ...

  2. ExtJs 之 ComboBox级联使用

    刚接触ExtJs不到一周,项目使用ExtJs框架,有个版块用到了combobox的级联(两级),遇到了一系列的问题,两天来一直查API.网络资料,终于解决了. 先列出遇到的一系列问题(也许你也遇到过! ...

  3. JS动态级联菜单

    JS动态级联菜单是前端常用的一个功能,特此抽时间研究了下,附上代码 <html> <head> <meta charset="utf-8" /> ...

  4. 前台JS(Jquery)调用后台方法 无刷新级联菜单示例

    前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单 http://www.dtan.so CasMenu.aspx页 ...

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

    本文为博主原创,转载请注明. 首先看一下实现后的效果图: 当然,要完成这个实验,mysql必须与数据库连接,这里选用navicat for mysql这款软件,它与mysql的契合度是很高的,配置环境 ...

  6. Ajax实现动态的二级级联菜单

    今天花了点时间用Ajax实现了一个二级级联菜单.整理总结一下.为了把重点放在Ajax和级联菜单的实现上,本文省略了数据库建表语句和操作数据库的代码! 数据库建表语句就不帖出来了.主要有两张表,区域表: ...

  7. extjs desktop startmenu (開始菜单)

    extjs desktop 的開始菜单 二级菜单,仅仅是简单演示实现原理,如 须要动态生成,自己改造就可以,下面基本方法原理: 首先 建立一个js文件 生成開始菜单数据:  function Get ...

  8. [python] 初学python,级联菜单输出

    #Author:shijt china_map = { "河北": { '石家庄': ['辛集', '正定', '晋州'], '邯郸': ['涉县', '魏县', '磁县'], ' ...

  9. javascript实现select菜单/级联菜单(用Rails.ajax实现发送请求,接收响应)

    在购物网站,填写收货地址的时候,会出现XX省XX市XX区的下拉菜单,如何实现此功能?思路是什么? 功能设置: 当选择省select菜单后,市的select菜单为这个省的城市列. 当选择市菜单后,区菜单 ...

随机推荐

  1. Android 5.0新控件——TextInputLayout

    Android 5.0(M)新控件--TextInputLayout 介绍之前,先直观的看一下效果 TextInputLayout其实是一个容器,他继承自LinearLayout,该容器是作用于Tex ...

  2. GC垃圾回收算法

    什么是GC垃圾回收呢.日常生活中我们去餐厅吃饭吃完饭,吃完饭走了餐具不用管,服务员在把餐具拿走,这是一种方式,服务员怎么知道他要来把餐具拿走呢,因为你走了,这个位置空了.服务员什么时候拿走餐具很重要, ...

  3. Spark技术内幕:Executor分配详解

    当用户应用new SparkContext后,集群就会为在Worker上分配executor,那么这个过程是什么呢?本文以Standalone的Cluster为例,详细的阐述这个过程.序列图如下: 1 ...

  4. Android文本框-android学习之旅(十七 )

    文本框简介 文本框属于基本的andoid控件,TextView继承了View是最基本的文本框,它的子类包括EditView和Button等,TextView的大部分方法,它的子类也可以使用. Text ...

  5. 在Android Studio 上安装Genymotion插件

    首先去官网http://www.genymotion.net/下载Genymotion并安装好. 其次打开AS的设置界面,找到Plugins插件目录 然后在搜索里搜Genymotion,然后点击Bro ...

  6. UNIX网络编程——产生RST

    产生RST的3个条件:1. 建立连接的SYN到达某端口,但是该端口上没有正在监听的服务.   如:IP为192.168.1.33的主机上并没有开启WEB服务(端口号为0x50),这时我们通过IE去访问 ...

  7. SQL Server2012 AlwaysOn 无法将数据库联接到可用性组 针对主副本的连接未处于活动状态

    在配置alwayson的可用性组时遇到如下截图中的错误,这里的服务器86是作为副本数据库服务器的. 解决该问题只需将SQL服务的运行账号改成管理员,并且打开防火墙中的5022端口(该端口号可在可用性组 ...

  8. Linux中printk()实例

    新建hello.c #include <linux/kernel.h> #include <linux/module.h> int init_module(void) { pr ...

  9. ROS(indigo)swarm_robot 群机器人示例Gazebo

    ROS(indigo)swarm_robot 群机器人示例Gazebo 参考网址:https://github.com/yangliu28/swarm_robot_ros_sim 安装提示:catki ...

  10. UNIX环境高级编程——线程和fork

    当线程调用fork时,就为子进程创建了整个进程地址空间的副本.子进程通过继承整个地址空间的副本,也从父进程那里继承了所有互斥量.读写锁和条件变量的状态.如果父进程包含多个线程,子进程在fork返回以后 ...