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 相关文章推荐
style、 currentStyle、 runtimeStyle区别分析
Aug 01 Javascript
JavaScript学习笔记(一) js基本语法
Oct 25 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 Javascript
Javascript自定义事件详解
Jan 13 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 Javascript
Javascript中的async awai的用法
May 17 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 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
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
使用python实现扫描端口示例
2014/03/29 Python
python字典get()方法用法分析
2015/04/17 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python实现图像拼接
2020/03/05 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
物流合作计划书
2014/01/10 职场文书
就业协议书怎么填
2014/09/15 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
高中化学教学反思
2016/02/22 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python