extjs两个tbar问题探讨


Posted in Javascript onAugust 08, 2013

版本:extjs3.4

接触过extjs的同志们都知道每个panel都有一个tbar(top bar 上面工具栏) ,bbar(bottom bar 底部工具栏)

大家做查询页面,一般都是啥样子的?
最基本的是一个table,来显示数据。
再进一步:
添加对数据的操作,比如添加按钮
再进一步:
一般查询都会有查询条件,查询条件可以快速定位。

那对于extjs来说,extjs中封装了很多组件,其中组件的概念很类似于java swing,比如panel,button,component,container等这种东西。
对于上述的查询页面,做java开发,相比一点问题都没有,三个table,或三个div即可。
那对于extjs呢?
其实extjs也灰常简单,显示数据的,使用gird组件,查询按钮,使用button组件,查询条件,文本格式啊,但是若把添加按钮和查询搜索条件放在一个tbar上,这样也可以,至少功能实现了。
但是一切都是为客户着想,着想最明显的行为:把用户想成傻瓜,一切傻瓜式操作。比如傻瓜式相机,傻瓜式装系统,不是挺火的啊。

那为了信达雅,到底如何把执行按钮和查询搜索条件分别放在两个tbar上呢?
网上有一种在grid中添加两个tbar的代码,对于项目着急的新手来说,本人有个简单的做法,一样实现信达雅:
最简单的做法是:使用listeners监听器方式。

第一:把执行按钮,比如添加按钮,放在panel自带的tbar上。
第二:自定义工具栏,在其上放查询搜索条件。
第三:自定义工具栏监听panel自带的tbar【即第二监听第一】

代码如下:

tbar:new Ext.Toolbar({items:['-']}), 
//把查询工具栏写在按钮工具栏下面 
listeners: { 
render: function(){ 
queryBar.render(this.tbar); 
} 
} //我们项目部分主要代码如下: 
mnguser.panel = new Ext.Panel({ 
id :'mngmenuDiv', 
title : '用户管理', 
region : 'center', 
layout : 'fit', 
style : 'padding:3px;', 
bodyBorder : true, 
border : true, 
items : _grid, 
tbar:new Ext.Toolbar({items:['-']}), 
//把查询工具栏写在按钮工具栏下面 
listeners: { 
render: function(){ 
queryBar.render(this.tbar); 
} 
} 
}); 
mnguser.body = Ext.extend(Ext.Viewport, { 
layout : 'border', 
initComponent : function() { 
this.content = mnguser.panel; 
menuOpt(this.content); //在自带tbar上添加执行按钮 
Ext.apply(this, { 
items : [this.content] 
}); 
mnguser.body.superclass.initComponent.call(this); 
} 
});

效果如下:
extjs两个tbar问题探讨
Javascript 相关文章推荐
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
jquery键盘事件介绍
Jan 31 Javascript
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
一起学写js Calender日历控件
Apr 14 Javascript
js自定义瀑布流布局插件
May 16 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
May 03 Javascript
js中async函数结合promise的小案例浅析
Apr 14 Javascript
Vue-input框checkbox强制刷新问题
Apr 18 Javascript
微信小程序按顺序同步执行的两种方式
Dec 20 Javascript
JS实现随机数生成算法示例代码
Aug 08 #Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 #Javascript
js 为label标签和div标签赋值的方法
Aug 08 #Javascript
JS模拟自动点击的简单实例
Aug 08 #Javascript
动态改变div的z-index属性的简单实例
Aug 08 #Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 #Javascript
JS+css 图片自动缩放自适应大小
Aug 08 #Javascript
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
jquery对表单操作2
2011/04/06 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
Postman模拟发送带token的请求方法
2018/03/31 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
mac系统安装Python3初体验
2018/01/02 Python
Python面向对象程序设计示例小结
2019/01/30 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Python实现FLV视频拼接功能
2020/01/21 Python
python中entry用法讲解
2020/12/04 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
电气技术员岗位职责
2013/11/19 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
青年志愿者事迹材料
2014/02/07 职场文书
庆元旦广播稿
2014/02/10 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers