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 相关文章推荐
基于jquery的动态创建表格的插件
Apr 05 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
May 28 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 Javascript
javascript 正则表达式去空行方法
Jan 24 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
JavaScript创建对象方法实例小结
Sep 03 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
微信小程序select下拉框实现源码
Nov 08 Javascript
JS使用for in有序获取对象数据
May 19 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP中文乱码解决方案
2015/03/05 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
JQuery跳出each循环的方法
2015/04/16 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
Angularjs的启动过程分析
2017/07/18 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python读写unicode文件的方法
2015/07/10 Python
Python简明入门教程
2015/08/04 Python
python中异常捕获方法详解
2017/03/03 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
Sanic框架流式传输操作示例
2018/07/18 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
Python os库常用操作代码汇总
2020/11/03 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
如何用python 操作zookeeper
2020/12/28 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
优秀员工年终发言演讲稿
2014/01/01 职场文书
户外宣传策划方案
2014/05/25 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
如何写辞职信
2015/05/13 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL