Extjs查询实现

效果图如上:

页面代码:

 5 Ext.QuickTips.init();   //放在图标上会自动提示信息
 6
 7 Ext.define(‘ExtApp.view.StudentList‘ , {
 8     extend : ‘Ext.grid.Panel‘ ,
 9     id : ‘StudentListGrid‘ ,
10     xtype : ‘StudentList‘ ,
11     store : ‘StudentList‘ ,
12     draggable:false, //设置为false则禁用拖拽改变列顺序、
13     columnLines:true,//添加列的框线样式
14     viewConfig: {
15         stripeRows:true //True来实现隔行换颜色
16     },
17      tbar : [{
18         xtype : ‘form‘,
19         id : ‘queryFormSL‘ ,
20         width : ‘100%‘,
21         items : [{
22             xtype : ‘container‘,
23             padding : 5,
24             flex : 2,
25             layout : {
26                 type : ‘hbox‘
27             },
28             items : [{
29                 labelWidth : 60,
30                 labelAlign : ‘right‘,
31                 width: 200,
32                  xtype : ‘combo‘,
33                 fieldLabel:‘选择年级‘,
34                 name:‘gradeCode‘,
35                 id : ‘cobStudentListGradeCode‘,
36                 store : ‘Grade‘,
37                 valueField : ‘gradeCode‘,
38                 displayField : ‘gradeName‘,
39                 editable : false,
40                 emptyText : ‘请选年级‘,
41                 queryMode : ‘local‘
42
43                },{
44                 xtype : ‘textfield‘,
45                 labelSeparator:‘:‘,
46                 labelWidth : 150,
47                 width: 300,
48                 labelAlign : ‘right‘,
49                 id:‘SListTextField‘,
50                 name:‘userNameORuserCode‘,
51                 fieldLabel : ‘输入学生ID或学生姓名‘
52             },{
53                 xtype : ‘button‘,
54                 id : ‘btnStuListQuery‘,
55                 text : ‘查询‘
56             },{
57                 xtype : ‘button‘,
58                 id : ‘btnStuListReset‘,
59                 text : ‘重置‘
60             }]
61         }]
62     }],
63     columns : [
64         {   xtype:‘rownumberer‘,text:‘序号‘,flex:1,    align:‘center‘},
65         {   text:‘账户ID‘ , flex:2 , align:‘center‘ , dataIndex:‘userCode‘ },
66         {    text:‘用户姓名‘ , flex:1 , align:‘center‘ , dataIndex:‘userName‘},
67         {    text:‘性别‘ , flex:1 , align:‘center‘ , dataIndex:‘sex‘    },
68         {    text:‘城市‘ , flex:1 , align:‘center‘ , dataIndex:‘cityName‘    },
69         {    text:‘学校‘ , flex:1 , align:‘center‘ , dataIndex:‘schoolName‘},
70         {    text:‘年级号‘ , flex:1 , align:‘center‘ , dataIndex:‘gradeCode‘},
71         {    text:‘联系电话‘ , flex:2 , align:‘center‘ , dataIndex:‘tel‘},
72         {    text:‘邮箱‘ , flex:2 , align:‘center‘ , dataIndex:‘email‘},
73         {    text:‘QQ‘ , flex:2 , align:‘center‘ , dataIndex:‘qq‘},
74         {    header:‘账户注册时间‘,align:"center",flex:3,dataIndex:‘firstAccessDate‘,xtype:‘datecolumn‘,format:‘Y-m-d H:i:s‘},
75         {    header: ‘详细信息‘ ,
76             xtype: ‘actioncolumn‘ ,
77             width: 50 ,
78             flex : 1 ,
79             align:‘center‘,
80             items: [{
81                 icon: ‘images/grid.png‘ ,
82                 tooltip: ‘详细信息‘ ,
83                 handler: function(grid, rowIndex, colIndex){
84                     var record = grid.getStore().getAt(rowIndex);
85                     var win = Ext.create(‘ExtApp.view.StudentDetails‘).show();
86                     var form = win.down(‘form‘).getForm();
87                     form.loadRecord(record);
88                 }
89             }]
90         }
91     ],
92     dockedItems:[{
93         xtype: ‘pagingtoolbar‘,
94         store : ‘StudentList‘ ,   // GridPanel中使用的数据
95            dock: ‘bottom‘,
96           displayInfo: true
97     }]
98 });

点击"查询"按钮触发事件:

 1 StuListQuery:function(btn,event){
 2         var store=this.getStore(‘StudentList‘);
 3         var form=btn.up(‘form[id=queryFormSL]‘);
 4         var grid=form.up(‘grid[id=StudentListGrid]‘);
 5         //var grid=Ext.getCmp(‘StudentListGrid‘);
 6         var pageBar = grid.down(‘pagingtoolbar‘);
 7         var userNameORuserCode=form.getForm().getValues()[‘userNameORuserCode‘]; //form.getForm.getValues()返回的是一个数组
 8         var gradeCode = form.getForm().getValues()[‘gradeCode‘];
 9         store.setProxy({
10             type:‘ajax‘,
11             actionMethods:{
12                 read:‘POST‘
13             },
14             url:‘queryStudent.action‘,
15             extraParams:{‘userNameORuserCode‘:userNameORuserCode,
16                         ‘gradeCode‘:gradeCode
17                         },
18             reader:{
19                 type:‘json‘,
20                 root: ‘rows‘,
21                 totalProperty: ‘results‘
22             }
23         });
24         pageBar.moveFirst();
25     },  

 Extjs中找Form,Extjs找组件的方式:

1,Extjs.getCmp

2,通过组件之间的关系,up,down

时间: 2024-10-02 08:55:31

Extjs查询实现的相关文章

Python开发入门与实战14-基于Extjs的界面

14. 基于Extjs的界面 上一章我们实现了一个原生的html例子,本章我们将采用Extjs实现界面的展现,来说明MVC模式下我们是怎么考虑界面与业务层的关系的. 14.1. 引用Extjs目录 首先,我们在inventory app下增加一个static目录,拷贝Extjs发布目录到static下,本章节例子我们采用的是Extjs 4.1.1版本进行说明演示,Django项目能够访问static目录我们需要修改项目setting.py的STATIC_ROOT项的值,项目才能正确装载引用的静态

ExtJS 4.2 业务开发(二)数据展示和查询

本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统,并提供查询.添加.修改的功能. 大致的目录结构如下: ShipMgrTab.js :船舶业务的入口. controller 目录:存放船舶业务的逻辑控制文件. model 目录:存放船舶业务的model文件. store 目录 :存放船舶业务的store文件. view 目录 :存放船舶业务的组件

【ExtJs】与后台数据库交互的带分页表格组件grid的查询

ExtJs的表格组件Grid是可以分页的,并且这个组件是随时随地地与后台数据库进行这交互.正如VC的MFC中的List表格控件一样. 基本上,这个表格控件作为OA系统的主角,配合<[ExtJs]利用树状结构.Border布局与标签页刻划OA界面>(点击打开链接)就真的是一个完整的OA系统了. 然而网上对于此组件的叙述非常糟糕,各类杂七杂八的资料,层出不同的后端语言,让人根本看不明白.下面举一个例子来说明Grid组件怎么查询数据库的数据,并且分页现实出来. 一.基本目标 比如Mysql数据库有一

ExtJS ComboBox之 键入自动查询

Ext.create('Ext.form.Panel', { title: '菜单编辑', id:'editMenuForm', bodyPadding: 5, // The form will submit an AJAX request to this URL when submitted url: '/SystemManage/SaveMenuForm', method: 'POST', // Fields will be arranged vertically, stretched to

[ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结

一个UI前台组件肯定会比较多,我们通常习惯性的使用ID来获取需要操作的组件,但是这种方法是extjs推荐的么?有没有extjs推荐使用的获取组件的方法呢? 目录 目录 extjs的查询组件的API 查询实例 基本的组件查询 组件树查询 通过组件的属性检索 属性匹配操作符 逻辑运算的 官方案例 extjs的查询组件的API 组件查询API文档地址:5.1.0-apidocs/#!/api/Ext.ComponentQuery-method-query 可以看到是使用的Ext.ComponentQu

ExtJS得知--------Ext.Element学习的查询方法(示例)

详细实例:(实验结果可复制代码后进行演示) Ext.onReady(function(){ Ext.create('Ext.panel.Panel',{//创建一个面板 title:'我的面板' , width:'100%' , height:400 , renderTo:Ext.getBody(), html:'<div id=d1><span id=sp>我是sp的内容</span><div id=d2>我是d2的内容</div></d

Extjs分页使用java实现数据库数据查询

关于Ext分 页功能的实现.项目用的是js.Ext.servlet.下面贴下代码: var obj = this; var pageSize = 20;   //统计结果分页每一页显示数据条数 //在这里使用Store来创建一个类似于数据表的结构,因为需要远程获取数据,所以应该使用 //HttpProxy类,我是从后台读取的是json数据格式的数据,所以使用JsonReader来解析: var proxy = new Ext.data.HttpProxy({ url:"com.test.chec

ExtJS学习--------Ext.Element中的查询方法学习(实例)

具体实例:(实验结果可复制代码后进行演示) Ext.onReady(function(){ Ext.create('Ext.panel.Panel',{//创建一个面板 title:'我的面板' , width:'100%' , height:400 , renderTo:Ext.getBody(), html:'<div id=d1><span id=sp>我是sp的内容</span><div id=d2>我是d2的内容</div></d

Extjs PROXY查询params无法传参,改用extraParams