Extjs中FieldSet的收缩和展开实例

Extjs中FieldSet的收缩和展开实例:

FieldSet表单控件属于Ext.form.FieldSet的类,继承自:Ext.Panel,表示对某一组字段的标准容器,其中最主要的一个功能就是收缩和展开收缩与展开demo:

  items: [
	id:'check_email_hacklog_send',
        xtype: 'fieldset',
        height:'auto',
        checkboxToggle: true,
        checkboxName: 'enable_email_hacklog_send',
        title: EmailAlertMsg.enable_email_hacklog_send_box + '(备注:SSDDSDSDSDSDSDSDSDSD)',
        collapsed: true,
        collapsedCls:'emailhacklogcss',
	items[{...}]
	]

效果切换显示

以下说明来自官方文档及网络:

Extjs的Fieldset控件中有一个属性checkboxToggle

这个属性在设置为true的时候,fieldset在title就会多出一个checkbox,当勾选这个checkbox时,这个fieldset就会展开和收缩

还有两个配合的属性:onCheckClick和checkboxName属性, onCheckClick属性是一个函数,用来替代默认的收缩/展开函数,外加上checkboxName,可以在onCheckClick函数中知道checkbox的勾选情况,从而来做一些事情,如:如果fieldset里面是一个CheckBoxGroup,那么可以根据fieldset的checkBox情况,来全选checkBoxGroup。

此外还有一个属性是collapsible,这个也是用来做展开和收缩的与checkboxToggle不同的是,这个出来的是一个小三角

这两个收缩/展开属性可以同时为true,当它们同时为true时,checkbox和小三角会同时出现

Extjs中FieldSet其它属性和方法:

1、labelWidth : Number

标签的宽度,该属性会影响下级的子容器。

2、itemCls : String

关于容器的表单项元素的额外的CSS样式(默认为"",如容器的itemCls有设置的话就用那个值)。由于该样式是作用于整个条目容器的,这就会对在内的表单字段、label元素(若有指定)或其他元素只要属于条目内的元素都有效。此组件只有在Ext.form.FormLayout FormLayout布局管理器控制的容器下渲染才有用。

3、baseCls : String

作用在面板元素上的CSS样式类 (默认为 ‘x-panel‘)。

4、layout : String

此容器所使用的布局类型。如不指定,则使用缺省的Ext.layout.ContainerLayout类型。 当中有效的值可以是:accordion、anchor、border、cavd、column、fit、form和table。 针对所选择布局类型,可指定#layoutConfig进一步配置。

5、animCollapse : Boolean

True 表示为面板闭合过程附有动画效果(默认为true,在类 Ext.Fx 可用的情况下)。

6、applyTo : Mixed

节点的id,或是DOM节点,又或者是与DIV相当的现有元素,这些都是文档中已经存在的元素当使用applyTo后,主元素所指定的id或CSS样式类将会作用于组件构成的部分,而被创建的组件将会尝试着根据这些markup构建它的子组件。使用了这项配置后,不需要执行render()的方法。 若指定了applyTo,那么任何由#renderTo传入的值将会被忽略并使用目标元素的父级元素作为组件的容器。

7、frame : Boolean

True表示为面板的边框外框可自定义的,false表示为边框可1px的点线(默认为false)。

8、border : Boolean

True表示为显示出面板body元素的边框,false则隐藏(缺省为true),默认下,边框是一套2px宽的内边框,但可在#bodyBorder中进一步设置

9、bodyBorder : Boolean

True表示为显示出面板body元素的边框,false则隐藏(缺省为true),只有#border == true时有效。 若border == true and bodyBorder == false,边框则为1px宽,可指定整个body元素的内置外观。

10、titleCollapse : Boolean

True表示为允许单击头部区域任何一个位置都可收缩面板(当#collapsible = true)反之只允许单击工具按钮(默认为false)。

11、autoScroll : Boolean

True表示为在面板body元素上,设置overflow:‘auto‘和出现滚动条false表示为裁剪所有溢出的内容(默认为false)。

12、floating : Boolean

True表示为浮动此面板(带有自动填充和投影的绝对定位),false表示为在其渲染的位置"就近"显示(默认为false)。

设置floating为true,将会在面板元素的基础上创建一个Ext.Layer 同时让面板显示到非正数的坐标上去了,不能正确显示。因此面板必须精确地设置渲染后的位置,也就是使用绝对的定位方式。(如:myPanel.setPosition(100,100);)若一个浮动面板是没有固定其宽度的,这导致面板会填满与视图右方的区域。 该属性也可以是创建那个Ext.Layer对象所用的配置项对象。

13、shadow : Boolean/String

True 表示为(或一个有效Ext.Shadow#mode值)在面板后显示投影效果(默认为‘sides‘四边)。 注意此项只当floating = true时有效。

14、shadowOffset : Number

投影偏移的象素值(默认为4)。注意此项只当floating = true时有效。

15、contentEl : String

用现有HTML节点的内容作为面板body的内容(缺省为‘‘)。 面板的afterRender方法负责了此HTML元素的加入到面板body中去。 该部分的内容又比#html HTML的显示位置而居后,所以render事件触发的时刻document还没有所说的HTML内容。

16、draggable : Boolean

虽然Ext.Panel.DD是一个内部类并未归档的,但亦可自定义拖放(drag/drop)的实现,具体做法是传入一个Ext.Panel.DD的配置代替true值。 它是Ext.dd.DragSource的子类,所以可在实现Ext.dd.DragDrop的接口方法的过程中加入具体行为:

17、tabTip : String

tooltip的innerHTML字符串(也可以html标签),当鼠标移至tab时会显示。 这时Ext.Panel充当的角色是 Ext.TabPanel某一子面板。记得Ext.QuickTips.init()必须初始化好。

18、disabled : Boolean

渲染该组件为禁用状态的(默认为false)。

19、autoHeight : Boolean

True表示为使用height:‘auto‘,false表示为使用固定高度(缺省为false)。 注意:尽管许多组件都会继承该配置选项,但是不是全部的‘auto‘ height都有效。 autoHeight:true的设定表示会依照元素内容自适应大小,Ext就不会过问高度的问题。

20、collapsedCls : String

当面板闭合时,面板元素的CSS样式类 (默认为 ‘x-panel-collapsed‘)。

21、headerAsText : Boolean

True表示为显示面板头部的标题(默认为 true)。

22、buttonAlign : String

在此面板上的按钮的对齐方式,有效值是‘right,‘ ‘left‘ and ‘center‘(默认为 ‘right‘)。

23、collapsed : Boolean

True 表示为渲染面板后即闭合(默认为false)。

24、collapseFirst : Boolean

True 表示为展开/闭合的轮换按钮出现在面板头部的左方,false表示为在右方(默认为true)。

25、minButtonWidth : Number

此面板上按钮的最小宽度(默认为75)。

26、layoutConfig : Object

选定好layout布局后,其相应的配置属性就在这个对象上进行设置。 (即与#layout配置联合使用)有关不同类型布局有效的完整配置信息,

参阅对应的布局类:

Ext.layout.Absolute

Ext.layout.Accordion

Ext.layout.AnchorLayout

Ext.layout.BorderLayout

Ext.layout.CardLayout

Ext.layout.ColumnLayout

Ext.layout.FitLayout

Ext.layout.FormLayout

Ext.layout.TableLayout

27、items : Mixed

一个单独项,或子组件组成的数组,加入到此容器中。 每一项的对象类型是基于Ext.Component的你可传入一个组件的配置对象即是lazy-rendering的做法,这样做的好处是组件不会立即渲染,减低直接构建组件对象带来的开销。 要发挥"lazy instantiation延时初始化"的特性,应对组件所属的登记类型的Ext.Component#xtype属性进行配置。要了解所有可用的xtyps,可参阅Ext.Component。如传入的单独一个项,应直接传入一个对象的引用( 如items: {...})。多个项应以数组的类型传入(如items:
[{...}, {...}])。

28、defaults : Object

应用在全体组件上的配置项对象,无论组件是由#items指定,抑或是通过#add、#insert的方法加入,都可支持。 缺省的配置可以是任意多个容器能识别的“名称/值”, 假设要自动为每一个Ext.Panel项设置padding内补丁,你可以传入defaults: {bodyStyle:‘padding:15px‘}。

29、hideBorders : Boolean

True表示为隐藏容器下每个组件的边框,false表示保留组件现有的边框设置(默认为false)。

时间: 2024-10-13 00:29:55

Extjs中FieldSet的收缩和展开实例的相关文章

Android中ListView封装收缩与展开

常有这种需求,即ListView中数据较多(不涉及分页),如果都展开,数据量较多,体验不好,所以需要提供用户查看更多.收缩数据的交互 截图如下:    如图所示,点击更多,则展开所有数据.点击收起,则自动收缩. 代码如下(主要通过继承Adapetr,控制展示的数据量getCount()方法实现,当数据量大于默认值(2)时,自动只展示2条数据,当点击更多时,则展示全部数据): (在使用这种方法前曾想自定义ListView实现,但遇到较多问题,如: 1.由于我们通过adapter设置数据,不直接调用

ExtJS中的accordion布局如何展开特定的item

因为项目需要,使用了extJS作为后台管理系统的前端框架. 众所周知,后台管理系统一般是根据权限来展示菜单的. 菜单使用了panel的accordion布局,然后内部使用panel包裹了一棵树(treepanel). 刷新时自然是不方便啦,因为想要自动打开上次的菜单展开状态. 关键点如下: 1. 使用Cookies或者HTML5的LocalStorage记住最后展开菜单的rootID. 2. 调用accordion布局中子元素panel的expand()方法即可. Controller中的部分代

ExtJS中DragDrop插件的一些使用实例

DragDrop这个插件为GridView提供了拖放功能,另外一个插件TreeViewDragDrop为TreeView提供拖拽功能,这里主要是对DragDrop插件的使用做一些说明. 使用这个插件源于目前在做的一个项目:需求方要求新增一个可以在页面上通过拖拽对数据进行排序的功能,因之前数据需要用户手动输入一个序号来完成数据的排序. 目前官方文档中对该插件的使用,有在两个列表页之间拖拽数据和对列表页某一单元格中的数据的拖拽的实例.没有在同一列表页中拖拽一行数据的实例. 直接代码: Ext.onR

extjs中apply和applyIf的用法

本文导读:extjs中apply及applyIf方法都是用于把一个对象中的属性复制到另外一个对象的属性中,相当于属性拷贝.不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有,而源对象中有的属性. apply 方法的签名 apply( Object obj, Object config, Object defaults ) : Object 参数说明 第一个参数是要复制的目标对象:第二个参数是复制的源对象:第三个参数是默认源对象,第三个参数是可选的,意味着如果第三个参

iOS开发——UI篇&代理/通知/Block传值(实现UItableView分组的收缩与展开)

代理/通知/Block传值实现UItableView分组的收缩与展开 初始化之后出现下面的界面 准备: 1:定义一个BOOL值用来记录点击 1 @property (nonatomic, assign, getter = isOpen) BOOL open; 2:在相应的点击方法里面是实现点击 1 self.group.open = !self.group.open; 3:在numberOfRowsInSection中返回的时候使用三木判断是否点击,并且实现伸缩与展开, 1 return mod

extjs中form表单提交成功、失败的响应信息

类Ext.form.Action.Submit 处理表单Form数据和返回的response对象的类. 该类的实例仅在表单Form{@link Ext.form.BasicForm#submit 提交}的时候创建. 返回的数据包必须包含一个 boolean 类型的success属性,还有可选地,一个含有无效字段的错误信息的属性 A response packet may contain: ·        success property : Boolean - required. ·     

Extjs中由于ID重复引起的各种异常的解决方法

很多人使用EXTJS中的Tabpanel遇到一个问题: 那就是在点击Tabpanel后,有时会发现Tabpanel出现错误,或无法Destroy已经关闭的panel,发现已经关闭的panel 中的组件出现在了页面其他地方.这个问题,网上问的人非常多,却没有答案,我是无意间发现问题的关键的. Tabpanel中的panel关闭却无法销毁其子组件,原因是panel中可能存在与其他panel中组件ID相同的组件,这是非常常见的问题了. EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个I

extJS 中 ext.data 介绍

ext.data 最主要的功能是获取和组织数据结构,并和特定控件联系起来,于是,Ext.data成了数据的来源,负责显示数据. Ext.data在命名空间中定义了一系列store.reader和proxy.Grid和ComboxBox都是以Ext.data为媒介获取数据的,它包含异步加载.类型转换.分页等功能. Ext.data默认支持Array.JSON.XML等数据格式,可以通过Memory.HTTP.ScriptTag等方式获得这些格式的数据.如果要实现新的协议和新的数据结构,只需要扩展r

ExtJS中TreeGrid的用法

如果您是第一次使用ExtJS的TreeGrid的话,我相信总会有一些小麻烦的,下面就来说一说ExtJS中TreeGrid的使用. 本人使用的ExtJS版本为4.0.7,并且使用了MVC模式,如果不了解ExtJS的MVC模式的话我个觉得还是有必要去学学的, 学完后你肯定会喜欢上的. 其实在ExtJS中并没有TreeGrid这么一个类,这个说法是从EasyUI中借用过来的,ExtJS中的TreeGrid功能已经合在了Ext.tree.Panel中. TreeGrid显示出来大概是这个样子: 下面是这