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里