ExtJS 组件_button按钮配置-属性-方法详解

官方文档:https://docs.sencha.com/extjs/7.3.0/modern/Ext.html

1、EXT方法使用

Ext.QuickTips.init();
var buttonName =new Ext.Button({
id:"buttonName",
text:"Button组件基本用法",
tooltip:"提示信息:Button组件基本用法",
//提示信息,如果需要显示提示信息,需要使用Ext.QuickTips.init();
tooltipType:"title",//定义显示提示信息的类型,有qtip和title两种方式,默认是qtip
type:"button", //按钮类型:可以是submit, resetor button  默认是 button
autoShow:true,  //默认false,自动显示
hidden:false,  //默认false,是否隐藏
autoScroll: true, //设置滚动条
hideMode:"offsets", //隐藏方式,默认display,可以取值:display,offsets,visibility       
cls:"cssButton", //样式定义,默认""
disabled:false, //是否可用,默认false
disabledClass:"", //默认x-item-disabled
enableToggle:true, //默认false
pressed:false, //设置按钮是否已经被按下,默认是false
handleMouseEvents:true,//默认true,如果为false,那么mouseout mouseover就不能被触发
//x:number,y:number,在容器中的x,y坐标 
handler:function(){
Ext.Msg.alert('提示消息框','测试Button组件:handler事件!');
},//添加事件
listeners:{
//添加监听事件可以结合handler测试这两个事件哪个最先执行
"click":function(){
Ext.Msg.alert('提示消息框','测试Button组件:listeners事件!');
Ext.getCmp("buttonName").hide();//隐藏按钮
} 
},
cls:"x-btn-text-icon",//添加图标前需要设置该属性
icon:"house.gif", //图标的地址
//plugins : Object/Array 扩展插件时使用
repeat:false,  //默认false ,如果为true,需要设置mouseover事件
renderTo:"Bind_Button" //将组件的显示效果渲染到某个节点的ID
})
1. enable();激活按钮
2. disable();禁用按钮
3. destroy();消灭按钮
4. focus();按钮获取焦点
5. getText();获取按钮上的文本
6. hide();隐藏按钮
7. show();显示按钮
8. setText( String text );设置按钮上的文本
9. setVisible( Boolean visible );设置按钮是否隐藏
10. buttonName.purgeListeners();
//使用该方法,意思是清除所有的监听事件,所以当执行该句后就不会再执行listeners的click事件了。按钮就不会被隐藏了。
11. buttonName.setHandler(fn);      
//也可以通过这种方式设置handler事件:
buttonName.setHandler(function(){
Ext.Msg.alert('提示消息框','测试Button组件:setHandler事件!');
});
12. buttonName.on(eventName,fn);
      //下面的事件可以自己测试下
buttonName.on("click",function(){
Ext.Msg.alert('提示消息框','测试Button组件:click事件!');
});
buttonName.on("mouseover",function(){
Ext.Msg.alert('提示消息框','测试Button组件:mouseover事件!');
});
buttonName.on("mouseout",function(){
Ext.Msg.alert('提示消息框','测试Button组件:mouseout事件!');
});
 
            
mouseout : ( Button this, Event e ) ;
mouseover : ( Button this, Event e );
beforedestroy : ( Ext.Component this ) ;
beforehide : ( Ext.Component this ) ;
beforerender : ( Ext.Component this )
beforeshow : ( Ext.Component this )
click : ( Button this, EventObject e )
destroy : ( Ext.Component this )
disable : ( Ext.Component this )
enable : ( Ext.Component this )
hide : ( Ext.Component this )
show : ( Ext.Component this )
render : ( Ext.Component this )

2、Extjs核心工具方法

一、Extjs核心工具方法
1、Ext.onReady
   Ext.onReady在DOM模型加载完毕后才进行操作。
   优点:无需像onload事件那样,等待页面的所有资源都加载完毕后才进行操作。
   "onReady方法是Ext.Loader.onReady()方法的别名"
   其语法如下:
   Ext.onReady(Object fn,Objet scope,Objet options)
   其中:
       fn:指定Ext JS和HTML页面加载完成后要执行的方法,fn参数类型为对象(必传参数);
       scope:指定执行该方法的范围(可选参数);
       options:指定执行一些附加选项,比如delay等(可选参数)。
      
2、Ext.create
   Ext.create方法是创建对象的方法,
   "在Ext JS 4版本之前,一直使用new关键字创建对象-- new classname([config])"
   其语法如下:
   Ext.create( String className, Object args)
   其中:className指定要创建对象的类名,可以是类的全名、别名或者备用名;
         args是一个JavaScript对象,用于向新生成的对象传入构造参数值(也称为配置选项,即为config属性指定选项传入参数值),类型为对象。

二、Ext JS 4 语法
1、配置对象
   config:用于为该类指定配置选项,Ext JS会自动为config指定的选项添加setter和getter方法。
   
2、关于xtype
   定义xtype来指定该位置使用什么组件。
   定义xtype,一般使用组件的别名。

3、使用Ext.widget或者Ext.createWidget创建对象
  Ext.widget的作用是使用别名来创建对象。 Ext.widget =Ext.createWidget;
  其语法如下:
  Ext.widget( classname,[config] )
  其中: classname是对象的别名;
         configs是可选参数,为对象的配置对象(config options),类型为对象。

4、使用Ext.ns或者Ext.namespace定义命名空间
   Ext.namespace()方法用于创建一个或多个命名空间,命名空间可用于限定函数、类的范围和作用域,可以      很好的解决二者的同名冲突。
   很多时候都会使用命名空间来组织相关类和其他类。在Extjs中,使用Ext.namespace方法可创建命名空间
   其语法如下:
   Ext.namespae(namespace1,namespae2,...)
   其中namespace1、namespace2都是字符串数据,是命名空间的名字

5、使用Ext.define定义新类
    Ext.define()方法和Ext.extend()方法都用于自定义类。
    "Ext.define()方法相当于Ext.ClassManager.create()方法的别名"
    "在Ext JS 3版本,定义新类使用的是Ext.extend方法(不推荐使用)"
    其语法如下:
    Ext.define( String className, Object properties,[Function callback] );
    其中:className:用于执行自定义的类名(推荐采用与java类名相同的命名规则);
          properties:新类的配置对象,对象里包含了类的属性集对象(用于为该类定义属性、方法)。
          callback:回调函数,当类创建完成后执行该函数(用于指定该类创建成功的回调函数)。
    注意:properties该对象可以指定任何合法的属性,以下是几种具有特殊意义的属性。
          Ⅰ.self:引用当前类本身
          Ⅱ.alias:为该类定义别名
          Ⅲ.alternateClassName:为该类定义可选的类名
          Ⅳ.config:用于为该类指定配置选项,Ext JS会自动为config指定的选项添加setter和getter方法
          Ⅴ.extend:用于指定该类继承的父类
          (还可以通过constructor为该类指定构造器)
          Ⅵ.inheritableStatics:与statics属性相同,也用于为该类定义静态方法和静态属性,该属性的              定义的静态方法和静态属性可以被子类继承
          Ⅶ.mixins:用于列出所有要被混入的类
          Ⅷ.override:用于注定要覆盖的类
          Ⅸ.requires:用于列出在实例化该类之前,必须预先加载的类
          Ⅹ.singleton:如果该属性被设为true,则该类的实例将是单例的
          ⅩⅠ.statics:为该类定义静态方法和静态属性
          ⅩⅡ.uses:用于列出必须与该类同时使用的类
         
6、使用Ext.defer方法指定延迟执行的函数
   Ext.defer()用于指定延迟执行的函数
   其语法如下:
   Ext.defer(Function fn,Number millis,[Object scope],[Array args])
   其中:
       fn参数执行需要延迟执行的函数;
       millis:指定延迟多少毫秒后执行fn函数;
       scope参数用于指定执行fn函数的范围;
       args用于执行传入fn函数的参数;  

 7、Ext.apply和Ext.applyIf方法
    Ext.apply()及Ext.applyIf()方法都是用于把一个对象中的属性复制到另一个对象中。
    共同点:都用于实现属性复制。
    不同点:
    Ext.apply()将会覆盖目标对象中的属性;
    Ext.applyIf()只复制目标对象中没有、而源对象中有的属性不会发生属性覆盖。
    其语法如下:
    Ext.apply()方法的语法格式为:
     Ext.apply(Object object, Object config,Object defaults)
     作用:
     把config、defaults两个对象的属性复制到objet中,但是当config、default两个对象的属性值发生冲        突时,config的属性值取胜。

 8、Ext.isXxx方法---用于判断是否为某某对象
    Ext.isXxx()方法代表系列的方法,它们都用于判断是否为某某对象,isXxx()方法总是返回Boolean值。

 9、Ext.each和Ext.iterate方法
    Ext.each()方法用于遍历数组,它是Ext.Array.each()方法的别名。
    Ext.iterate()方法相当于Ext.Array.each()方法和Ext.Object.each()方法“综合体”,
    当被遍历的数据是数组时,Ext.iterate()方法底层调用Ext.Array.each()方法进行遍历;
    当被迭代的数据是对象时,Ext.iterate()方法底层调用Ext.Object.each()方法进行遍历;

三、Ext JS扩展的工具方法---更多方法参考:Ext JS API文档
   Ext JS扩展的所有工具方法都直接位于Ext命名空间下。
Ⅰ、为Array扩展的工具方法---Ext.Array工具类
   JavaScript数组用做栈的两个方法如下:
   ①.push(ele):元素入栈,返回入栈后数组的长度。
   ②.pop():元素出栈,返回出栈的数组元素
  
   JavaScript数组作为队列使用的两个方法如下:
   ①.unshift(ele):元素入队列,返回入对列后数组的长度。
   ②.shift():元素出队列,返回出队列的数组元素。
   
 Ⅱ、为Date扩展的工具方法---Ext.Date工具类
   Ext.Date为操作Date对象提供了大量的工具方法
   例如:Ext.Date.format()、Ext.Date.between()两个方法

 Ⅲ、为Function扩展的工具方法---Ext.Function工具类
   Ext.Function为JavaScript函数新增了大量工具方法

 Ⅳ、为Number扩展的工具方法---4个工具类方法
   Ext.Number为JavaScript的数值类型的值
   Ext.Number.constrain()工具方法---Ext.Number.constrain(20,10,30) //20截取傲10~30范围内
   Ext.Number.from()工具方法---Ext.Number.from("abc","20") //字符串abc转换为数值
  Ext.Number.snap()工具方法---Ext.Number.snap(23,7,10,20) //返回离23最近的7的倍数(必须在10~30之间)
  Ext.Number.snap()工具方法:作用--先获取距离指定数值最近的、特殊数值的倍数,然后将得到的数值截取   到指定范围之内。
      Ext.Number.toFixed()工具方法---Ext.Number.toFixed(3.2545,1) //3.2545保留1位小数点
  
    Ⅴ、为Object扩展的工具方法---Ext.Object工具类
        javaScript的对象不仅仅可以作为对象使用,还可以作为Java Map集合使用,javascript对象的每个属性名、属性值就相当于Map的key-value对(键值对)
       例如:Ext.Object.each()、Ext.Object.toQueryString()、Ext.Object.fromQueryString()、Ext.Object.getKeys()、Ext.Object.getValues()等等

     Ⅵ、为String扩展的工具方法---Ext.String工具类
         Ext.String提供了大量工具方法来操作字符串,这些工具方法可以进一步增强字符串的功能
       Ext.String.format()方法比较实用,用于将字符串中的{0}、{1}、{2}....占位符替换成实际的值。

     Ⅶ、Ext.JSON方法
       JSON是一种非常有用的轻量级数据交换格式。
       Ext.JSON类提供了3个工具方法来完成javascript对象与JSON字符串的相互转化。
       Ext.JSON.encode()工具方法---用于把javascript对象或数组转换为JSON字符串
       Ext.JSON.encode()方法的别名是: Ext.encode()可直接使用
       Ext.JSON.decode()工具方法---用于把JSON字符串恢复成javascript数组或对象
       Ext.JSON.decode()方法的别名是: Ext.decode()可直接使用
       Ext.JSON.encodeDate()工具方法---用于编码一个日期。将返回的实际字符串,插入到JSON字符串作为        文本表达式。返回的默认格式是:"yyyy-mm-ddThh:mm:ss"
       Ext.JSON.encodeValue()工具方法---用于把javascript对象或数组转换为JSON字符串

3、Ext JS所有界面组件

1、使用Ext.container.Container--创建容器
2、使用Ext.panel.Panel--创建面板
3、使用Ext.toolbar.ToolBar--创建工具条
4、使用Ext.tab.Panel--创建Tab面板
5、使用Ext.container.Viewport--整体布局
6、使用Ext.window.Window--创建窗口
7、使用Ext.window.MessageBox--创建对话框
8、使用Ext.menu.CheckItem、Ext.menu.ColorPicker、Ext.menu.DatePicker实现特殊菜单项
9、使用Ext.Ation--创建按钮
10、使用Ext.ProgressBar--创建进度条
11、使用Ext.slider.Single--创建滑动条
12、使用Ext.Img--创建图片
13、使用Ext.Editor--创建编辑器
14、使用Ext.tip.ToolTip--创建提示
15、使用Ext.QuickTipManager和Ext.tip.QuickTip--创建提示
16、使用Ext.ux.GMapPanel实现Google地图
17、使用Ext.form.field.ComboBox--创建复合框
18、使用Ext.data.Store与Ext.data.Model管理数据
19、使用Ext.data.Proxy.Proxy和Ext.data.reader.Reader读取数据
20、使用Ext.grid.Panel--生成表格
21、使用Ext.grid.column.Column-定义列
22、使用Ext.grid.Panel显示远程数据
23、使用Ext.tree.Panel生成数
------------------------------------------------------------------------------------------------

Ext JS所有界面组件都继承了Ext.Component,
Ext.component的子类:Ext.container.Container则是其他组件的容器,用于盛装其他组件。

一、使用Ext.Component
 Ext.Component是最普通、没用额外附加行为的组件,该组件原本是"一无所有"的区域----空白的区域。
 样例:
 

二、使用Ext.container.Container创建容器 --- 可以盛装其他组件
   Ext.container.Container代表一个空白的容器,
   使用场景:需要现将多个组件"组合"在一起,再将他们放在页面上显示出来。
   样例:


三、使用 Ext.panel.Panel --- 最常用的的容器类之一,Ext.window.Window和 Ext.tab.Panel、Ext.form.Panel。
    Ext.panel.Panel继承了Ext.container.Container
    Ext.panel.Panel容器的功能更加丰富,它可以添加标题、工具条等等,更多参照API
    样例:
    

四、使用Ext.form.Panel--表单容器

Ext.form.Panel表单面板各组件介绍

1、Ext.form.FormPanel支持的主要表单组件
ExtJS表单组件 说明 Xtype类型
Ext.form.field.CheckBox 复选框 checkboxfield
Ext.form.CheckBoxGroup 复选框组 checkboxgroup
Ext.form.field.ComboBox 下拉列表框 combo
Ext.form.field.Date 日期选择框 datefield
Ext.form.field.Display 文本显示组件 displayfield
Ext.form.field.FieldContainer 字段容器 fieldcontainer
Ext.form.field.FieldSet 字段集 fieldset
Ext.form.field.Hidden 隐藏域 hiddenfield
Ext.form.field.HtmlEditer HTML文本编辑器 htmleditor
Ext.form.Label 标签字段 label
Ext.form.field.Number 数字输入框 numberfield
Ext.form.field.Radio 单选框 radio
Ext.form.RadioGroup 单选框组 radiogroup
Ext.form.field.Spinner 微调组件 spinnerfield
Ext.form.field.TextArea 多行文本框 textareafield
Ext.form.field.Text 单行文本框 textfield
Ext.form.field.Time 时间选择框 timefield
Ext.form.field.Trigger 触发器按钮文本框 triggerfield
Ext.form.field.File 文本框上传字段 filefield
2、Ext.form.Panel主要配置项目表
配置项 类型 说明
buttons Array 一个按钮(Ext.button.Button)配置对象数组,按钮将被添加到表单页脚中
layout String 表单布局
minButtonWidth Number 表单按钮的最小宽度,默认为75px
pollForChanges Boolean 是否循环检查表单值的变化
pollInterval Number 循环检查表单值的时间间隔,默认为500ms
items Mixed 一个子元素或子元素的数组
title String 表单标题
3、Ext.form.FormPanel常用方法表
方法名 说明
checkChange:void 强制检查每个表单字段是否发生了变化
getForm():Ext.form.BasicForm 获取表单面板对应的基本表单对象
load(Object options):void 加载表单内容
startPolling(Number interval):void 开始循环检查表单值是否发生了变化
参数说明:
interval:循环检查的时间,单位ms
 
stopPolling:void 停止startPolling启动的内置任务
submit(Object options):void 提交表单内容
4、Ext.form.field.Base主要配置项目表
配置项 类型 说明
dirtyCls String 设置表单值被修改后的样式
fieldCls String 设置表单字段的样式,默认为“x-form-field”
focusCls String 设置表单字段获得焦点时的样式,默认为“x-form-focus”
id String 控件的唯一标识,默认系统自动生成一个唯一标识
inputId String 这个id将被应用于生成的input元素,默认情况下这个id自动生成,如果手工配置id则需保证这个id的唯一性
invalidText String 设置表单值无效且并没有提供信息时的显示文字
inputType String 字段类型,默认为text
name String 字段名,默认为undefined
readOnly Boolean 设置字段是否只读,默认为false。
Mixin:Ext.form.field.Field
disabled Boolean true则禁用组件,默认为false。禁用状态下的组件将不被提交
submitValue Boolean 设置表单字段非禁用状态下是否提交表单值,默认为true
validateOnChange Boolean 设置是否在值发生变化时立刻校验的有效性,默认为true
value Mixed 字段的初始化值
Mixing:Ext.form.Labelable
activeError String 如果设置该值,则组件第一次被渲染时该值将被作为错误信息展示,默认为undefined,组件创建之后可以使用setActiveError和unsetActiveError进行修改
activeErrorTpl Ext.XTemplate 错误信息模板
autoFitErrors Boolean 设置为true则自动调节组件体范围,以便在组件范围内显示“side”或“under”状态的错误信息,默认为true
fieldLabel String 设置字段标签,它将与labelSeparator一起被添加,它的位置尺寸决定于labelAlign,labelWidth和labelPad配置项,默认为undefined
hideEmptyLabel Boolean 设置为true则完全隐藏内容为空的标签
hideLabel Boolean 设置为true则完全隐藏表单标签(fieldLabel和labelSeparator),默认为false
labelAlign String 设置表单标签filedLabel的位置,
有效值:left:
标签在字段左边。top:
标签在字段上面。
right:标签在字段右边。
 
labelPad Number 设置表单标签与表单字段值之间的空白间距,默认为5px
labelSeparator String 设置表单标签与表单字段之间的分隔符
labelStyle String 设置一个直接应用于标签元素的样式字符串,默认为undefined
labelWidth Number 设置表单标签宽度,仅当labelAlign设置为“left”或“right”时生效,默认为100px
labelableRenderTpl Array/String/Ext.Template 表单标签模板
msgTarget String 设置错误信息提示位置,
有效值包括:
qtip:显示一个浮动的提示消息
title:显示一个浏览器浮动提示消息
under:在字段下面显示一个提示消息
side:在字段右边显示一个提示消息
none:不显示提示消息
[element id]:直接将错误消息添加到指定元素的innerHTML属性
 
preventMark Boolean true则不显示错误消息,默认为false

 

你可能感兴趣的:(extjs)