Ext 组件的一些操作
原文:http://linder0209.iteye.com/blog/1039200
1、Ext.Component
- 该组件在渲染的时候会默认的创建div DOM,是根据this.autoEl的配置来创建的,默认this.autoEl为 div,创建后保存在 this.el中
- autoShow 设为true,渲染时会强制显示隐藏的元素,实际上会执行以下代码
- if(this.autoShow){//自动显示
- this.el.removeClass(['x-hidden','x-hide-' + this.hideMode]);
- }
该参数的设置,比如在多标签中如果想渲染隐藏标签的组件,并且渲染的时候又想计算高度和宽度,因为隐藏后,组件高度宽度不可见,把标签的子元素设为自动显示会实现这个效果。
- hideMode 隐藏模式,可支持的值有"visibility" (css中的visibility),"offsets"(负偏移位置)和"display"(css中的display)-默认为“display”,第一个和第二个虽然不可见,但仍然影响布局(即有高度和宽度)。最后一个除了不可见也不会影响布局。
2、Ext.grid.GridPanel
2.1、Ext.grid.ColumnModel 中renderer的应用
- {
- header : '性别',
- width : 60,
- dataIndex : 'sex',
- hidden : true,//是否隐藏
- sortable : true,// 是否能排序
- menuDisabled : true,//True表示禁止列菜单。默认为fasle。
- renderer : function(value, meta, record) {//根据返回值处理
- if (value == "1") {
- return "男";
- } else if (value == "0") {
- return "女";
- }
- }
renderer指定的函数中各参数意思为
renderer: function(value, metaData, record, rowIndex, colIndex, store) {
return value;
}
- value:对应的cell中的值
- metaData:单元格元数据对象,可以设置该单元格的如下属性
css:单元格CSS样式,作用在td元素上
attr:一段HTML属性的字符串,将作用于表格单元格内的数据容器元素(如'style="color:red;"')
cellAttr:设置单元格的属性
style:单元格的样式
id:单元格id
value:单元格值
- record:当前行记录数据
- rowIndex:当前行Index
- colIndex:当前列Index
- store:gridPanel 中store
利用renderer可以方便的处理每个单元格中的数据和实现
2.2、Ext.grid.ColumnModel 中一些属性的说明与功能
- sortable : true,// 是否能排序
- menuDisabled : true,// 隐藏右侧小箭头菜单
例如:
- {
- header : '密码',
- width : 85,
- dataIndex : 'password',
- sortable : false,// 是否能排序
- menuDisabled : true,// 隐藏右侧小箭头菜单
- editor : new Ext.form.TextField({
- allowBlank : false,
- minLength : 6,
- maxLength : 20
- })
- }
2.3 Ext.grid.RowSelectionModel
获取grid的选中的第一行的方法为 grid.getSelectionModel().getSelected()
获取grid的所有选中的行的方法为 grid.getSelectionModel().getSelections()
3、Ext.TabPanel
true不渲染隐藏标签中的组件,false会渲染
内置地,Tab面板是采用Ext.layout.CardLayout的方法管理tabs。此属性的值将会传递到布局的Ext.layout.CardLayoutdeferredRender配置值中, 以决定tab面板是否只有在第一次访问时才渲染(缺省为true)。
注意如果将deferredRender设为true的话, 又使用form的话,那表示只有在tab激活之后,全部的表单域(Fields)才会被渲染出来, 也就是说不管是提交表单抑或是执行getValues或setValues都是无用。
4、Ext.FormPanel
4.1、Form组件(输入框、单选等)
Form组件基类为Ext.form.Field,公共方法有:
- reset:重置此元素的值到原始值,并且清除所有无效提示信息。对于下拉选项该方法很有用
4.2 Form组件中的表单
4.2.1、Ext.form.TextField 属性emptyText和emptyClass 空字段中显示的文本和样式
4.2.2、Ext.form.ComboBox 关于该组件几个重要属性的说明
emptyText : '请选择',//默认显示的文本
emptyOption: false,//false则下拉列表中不显示“请选择”,true则显示(内部组件扩展了该属性cext)
autoSelect: false,//true表示自动选择下拉列表中默认的第一个值(如果还没有选择的话),false则不会选择默认第一个值(除非已经选择了)
submitValue:false,//False表示清楚name属性来达到不能提交该属性值,设为true将会提交隐藏域和元素本身域
submitValue该属性对于其他表单项也适应
5、布局器TableLayout
当把容器的布局器设为layout='table'时,如果想设置布局器中table的样式,可以在this.layoutConfig中设置tableAttrs,例如
- layoutConfig: {
- tableAttrs: {
- style: {
- width: '100%'
- }
- },
- columns: 3
- }
另外td的样式设置为:在容器items中添加属性cellCls,利用新加的css样式来控制td,例如
- items:[{
- xtype : 'panel',
- cellCls : '自定义css样式'
- }
- ]
6、布局器Ext.layout.BorderLayout
这是一种多面板,面向应用程序UI的布局风格,可支持多个套嵌面板,各区域间自动分隔和扩展/收缩功能。只有该布局方式才能动态改变各区域大小、隐藏显示各区域。布局后,整个区域不会显示滚动条。该布局器中几个常用的配置项说明如下
- collapseMode 默认下,可关闭的区域是通过点击区域标题条上的工具按钮来控制区域是否关闭的(collapsible设为true,并且设置了区域标题)。当collapseMdoe被设置为'mini'时,区域的分隔条中间会有一个小小的关闭按钮。 在'mini'模式下区域会闭合成为一个比常规模式下更细小的水平条。 默认下collapseMode是设置为undefined,支持两种值undefined和'mini'。注意如果可关闭的区域没有标题条,要想实现隐藏/显示区域效果,只能把collapseMode设置为'mini'以便标题条没有渲染也可以由用户来关闭区域。
- collapsible True表示为允许用户闭合此区域(默认为false)。如为true,区域上的title bar(前提是设置了title bar)将会渲染出“展开/收缩”的按钮,否则将不会显示。
- split True表示可允许用户动态调节区域的大小(缺省为false)。当split=true,通常需要指定区域的minSize和 maxSize。
- margins 作用在区域上的外补丁对象,对象的格式如{left: (左边距), top: (上边距), right: (右边距), bottom: (下边距)}。
- cmargins 作用在区域闭合元素上的外补丁对象,对象的格式如{left: (左边距), top: (上边距), right: (右边距), bottom: (下边距)}。
7、Ext.Window
modal: true,//true 表示为当window显示时对其后面的一切内容进行遮罩
Ext 组件的一些操作的更多相关文章
- EXT 组件一些属性与方法(Tree)
1.Ext.tree.TreePanel 主要配置项: root:树的根节点. rootVisible:是否显示根节点,默认为true. useArrows:是否在树中使用Vista样式箭头,默认为f ...
- ExtJS学习(二)Ext组件模型
Ext中所有的组件都继承自Ext.component,这种单根继承的模型保证所有组件都拥有相同的通用方法与生命周期,这样在后续对这些组件进行维护管理时将更加便捷,同时也保证了在进行布局时的便利. 组件 ...
- ext组件中的查询
组件中的查询依赖于组件树,往上可追溯父组件,往下可查找子组件. 组件中的查询主要包括8个方法:up.down.query.child.nextNode.nextSibiling.previoutNod ...
- ext组件的查询方式
1.使用id进行查询 (1)Ext.ComponentQuery.query("#mypanel") (2)Ext.getCmp("mypanel") 2.根据 ...
- ansible-playbook组件解析及操作全解
转载于http://www.178linux.com/7001 一.ansible-playbook介绍: playbook是由一个或多个”play”组成的列表.play的主要功能在于将事先归为一组的 ...
- rbac组件之角色操作(二)
为了与stark组件分离,形成独立的模块,所以rbac数据表的操作需要单独进行操作,对角色表的操作. urls.py urlpatterns = [ re_path(r'^roles/list/$', ...
- 吴裕雄--天生自然python学习笔记:python用 Selenium 组件实现浏览器操作自动化
一般情况下,我们都是用手工操作的方式来对浏览器进行各种操作 . 实际上, 只要我们安装一个自动化操作组件, Python 就可以让我们的很多操作实现自动化 . Selenium 组件 在开发网页时,用 ...
- 终于懂了:两个UI组件同时在操作是不可能实现的
// 目的:从某个对话框里,选择一些路径,然后用Tree自动展开这些路径,但至少需要几秒钟时间 // 问题:在这几秒钟期间,显示一个等待对话框,只能开多线程,因为后台继续要处理tree的一些事情.等待 ...
- vue中子组件通过$parent操作父组件的参数或者方法
先看一个简单的demo: 父组件添加一个弹框,弹框的内容是另外导入的一个子组件: <Modal v-model="accountDetailsModal" class=&qu ...
随机推荐
- 转: springboot2.0下hystrix.stream 404
springboot2.0下hystrix dashboard Unable to connect to Command Metric Stream解决办法https://blog.csdn.net/ ...
- lnmp 一键安装
系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版 需要5GB以上硬盘剩 ...
- 关于 sql server 数据库权限乱七八糟的一些东西
研究权限这些东西主要是因为今天正好在折腾数据库备份相关的东西,备份好说,备份完了就完了. 但是恢复备份的时候,需要先让数据库脱机,然后恢复,然后再联机,嗯,问题就出在联机上了. 根据 MSDN 的说法 ...
- 关于generate用法的总结
Abtract generate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复.这些语句可以包括模块实例引用的语句.连续赋值语句.always语句.initial语句和门 ...
- DevExpress GridControl List绑定方式下新增行的方法
List<Person> gridDataList = new List<Person>(); //此处是数据源 List集合 BindingList<Person> ...
- hibernate的flush()、refresh()、clear()针对一级缓存的操作的区别
首先session是有一级缓存的,目的是为了减少查询数据库的时间,提高效率,一级缓存的生命周期和session是一样的, session.flush()和session.clear()就针对sessi ...
- haproxy rpm制做
[root@c01 tmp]# fpm -s dir -t rpm -v 1.7.7 -n haproxy --before-install /tmp/haproxy_before.sh --afte ...
- C语言发展历程及其保留字(关键字)——附:C语言标准文档
引言 抽时间对C语言发展历程和C语言的标准库文件及其保留字/关键字做了个梳理,后面附C语言各版本国际标准. C语言发展历程及其标准库 C语言关键字/保留字 C语言国际标准 ...
- Unable to load configuration. - [unknown location]
严重: Exception starting filter StrutsPrepareFilterUnable to load configuration. - [unknown location] ...
- Scala解码base64编码的URL提示Last unit does not have enough valid bits
问题描述 开始使用Base64.getMimeDecoder().decode(base_url).map(_.toChar).mkString去解码,部分数据也提示如题的错误 然后尝试使用Base6 ...