ExtFrame里的查询页面

查询页面时进入一个模块的主界面

查询页面一般由三部分组成:操作栏工具条、查询参数窗口、查询结果列表

其实查询功能已基本在Grid封装章描述清楚了,这里就简单些

操作栏工具条和新增、修改界面没什么不同,在panel第一次显示时通过CommandButtonBuilder创建就可以了

查询参数窗口采用FormPanel构造,这样在GridPanel的read方法里可以直接调用FormPanel.getValues()方法获取参数,也可以不使用

查询的GridPanel使用QueryGrid(或其它封装),只需要声明grid的名字就可以自动加载格式和数据

以角色的查询页面为例,总计代码如下:

 1 var roletoolbar = new Ext.Toolbar({ items: [new Ext.Toolbar.Button({ text: '   ' })] });
 2 
 3 var rolegrid = new QueryAllGrid({
 4     title: '查询结果',
 5     frame: true,
 6     moniker: 'Role',
 7     gridName: 'role',
 8     width: '100%',
 9     height: 450
10 });
11 
12 var rolequerypanel = new Ext.Panel({
13     width: '100%',
14     height: 800,
15     items: [rolegrid]
16 });
17 
18 var rolepanel = new Ext.Panel({
19     tbar: roletoolbar,
20     title: '角色管理',
21     width: '100%',
22     height: 800,
23     items: [rolequerypanel],
24     listeners: {
25         beforerender: function() {
26             CommonButtonBuilder.buildToolbar(roletoolbar, 'rolepanel');
27         }
28     }
29 });

 

30行不到脚本就可以构造出这个查询页面了(角色没有使用查询参数Panel,使用的不分页的Grid)

如果Grid带有额外预定查询条件,有以下几种模式解决:

1、继承QueryGrid,提供额外参数

2、在参数Panel里增加隐藏字段

3、在后台代码里重载DataHandler的Query方法处理

4、QueryGrid初始化时设置baseParams参数

根据条件不同采用不同模式,一般推荐采用baseParams参数,这个参数会在QueryGrid的store的load方法里合并到store的baseParams里

posted @ 2012-05-17 09:35  Zux  阅读(344)  评论(0编辑  收藏  举报