当前位置:   article > 正文

Ext Js详解指南

ext.js

什么是Ext JS

API

走进Ext的世界 Ext JS是一款富客户端开发框架它基于javascript、HTML和CSS开发而成,无需安装任何插件即可在常用浏览器中创建出绚丽的页面效果。

个人总结Ext JS的方法

  • 从Extjs的视图学起

    例如:窗体、表单、数等等。并且可以掌握调试工具和技巧

  • 学习使用API

    学会怎么查询以及使用大牛提供的接口解决常见的问题(一般我们用到的效果,大牛们在做框架的时候都想到过)

  • 把Extjs的前端可视化的组件与后台连接,进行交互

    我们在做各类系统的时候都要跟数据库打交道,在这个阶段主要把各个组件与数据库的交互写清楚

  • 掌握理论知识--原理性东西

    如:Extjs的继承机制,事件等等

  • 官方提供的开发实例

    如官方提供的样例掌握

Extjs核心工具方法

  1. 一、Extjs核心工具方法
  2. 1Ext.onReady
  3. Ext.onReadyDOM模型加载完毕后才进行操作。
  4. 优点:无需像onload事件那样,等待页面的所有资源都加载完毕后才进行操作。
  5. "onReady方法是Ext.Loader.onReady()方法的别名"
  6. 其语法如下:
  7. Ext.onReady(Object fn,Objet scope,Objet options)
  8. 其中:
  9. fn:指定Ext JSHTML页面加载完成后要执行的方法,fn参数类型为对象(必传参数);
  10. scope:指定执行该方法的范围(可选参数);
  11. options:指定执行一些附加选项,比如delay等(可选参数)。
  12. 2Ext.create
  13. Ext.create方法是创建对象的方法,
  14. "在Ext JS 4版本之前,一直使用new关键字创建对象-- new classname([config])"
  15. 其语法如下:
  16. Ext.create( String className, Object args)
  17. 其中:className指定要创建对象的类名,可以是类的全名、别名或者备用名;
  18. args是一个JavaScript对象,用于向新生成的对象传入构造参数值(也称为配置选项,即为config属性指定选项传入参数值),类型为对象。
  19. 二、Ext JS 4 语法
  20. 1、配置对象
  21. config:用于为该类指定配置选项,Ext JS会自动为config指定的选项添加setter和getter方法。
  22. 2、关于xtype
  23. 定义xtype来指定该位置使用什么组件。
  24. 定义xtype,一般使用组件的别名。
  25. 3、使用Ext.widget或者Ext.createWidget创建对象
  26. Ext.widget的作用是使用别名来创建对象。 Ext.widget =Ext.createWidget;
  27. 其语法如下:
  28. Ext.widget( classname,[config] )
  29. 其中: classname是对象的别名;
  30. configs是可选参数,为对象的配置对象(config options),类型为对象。
  31. 4、使用Ext.ns或者Ext.namespace定义命名空间
  32. Ext.namespace()方法用于创建一个或多个命名空间,命名空间可用于限定函数、类的范围和作用域,可以 很好的解决二者的同名冲突。
  33. 很多时候都会使用命名空间来组织相关类和其他类。在Extjs中,使用Ext.namespace方法可创建命名空间
  34. 其语法如下:
  35. Ext.namespae(namespace1,namespae2,...)
  36. 其中namespace1、namespace2都是字符串数据,是命名空间的名字
  37. 5、使用Ext.define定义新类
  38. Ext.define()方法和Ext.extend()方法都用于自定义类。
  39. "Ext.define()方法相当于Ext.ClassManager.create()方法的别名"
  40. "在Ext JS 3版本,定义新类使用的是Ext.extend方法(不推荐使用)"
  41. 其语法如下:
  42. Ext.define( String className, Object properties,[Function callback] );
  43. 其中:className:用于执行自定义的类名(推荐采用与java类名相同的命名规则);
  44. properties:新类的配置对象,对象里包含了类的属性集对象(用于为该类定义属性、方法)。
  45. callback:回调函数,当类创建完成后执行该函数(用于指定该类创建成功的回调函数)。
  46. 注意:properties该对象可以指定任何合法的属性,以下是几种具有特殊意义的属性。
  47. Ⅰ.self:引用当前类本身
  48. Ⅱ.alias:为该类定义别名
  49. Ⅲ.alternateClassName:为该类定义可选的类名
  50. Ⅳ.config:用于为该类指定配置选项,Ext JS会自动为config指定的选项添加setter和getter方法
  51. Ⅴ.extend:用于指定该类继承的父类
  52. (还可以通过constructor为该类指定构造器)
  53. Ⅵ.inheritableStatics:与statics属性相同,也用于为该类定义静态方法和静态属性,该属性的 定义的静态方法和静态属性可以被子类继承
  54. Ⅶ.mixins:用于列出所有要被混入的类
  55. Ⅷ.override:用于注定要覆盖的类
  56. Ⅸ.requires:用于列出在实例化该类之前,必须预先加载的类
  57. Ⅹ.singleton:如果该属性被设为true,则该类的实例将是单例的
  58. ⅩⅠ.statics:为该类定义静态方法和静态属性
  59. ⅩⅡ.uses:用于列出必须与该类同时使用的类
  60. 6、使用Ext.defer方法指定延迟执行的函数
  61. Ext.defer()用于指定延迟执行的函数
  62. 其语法如下:
  63. Ext.defer(Function fn,Number millis,[Object scope],[Array args])
  64. 其中:
  65. fn参数执行需要延迟执行的函数;
  66. millis:指定延迟多少毫秒后执行fn函数;
  67. scope参数用于指定执行fn函数的范围;
  68. args用于执行传入fn函数的参数;
  69. 7Ext.applyExt.applyIf方法
  70. Ext.apply()及Ext.applyIf()方法都是用于把一个对象中的属性复制到另一个对象中。
  71. 共同点:都用于实现属性复制。
  72. 不同点:
  73. Ext.apply()将会覆盖目标对象中的属性;
  74. Ext.applyIf()只复制目标对象中没有、而源对象中有的属性不会发生属性覆盖。
  75. 其语法如下:
  76. Ext.apply()方法的语法格式为:
  77. Ext.apply(Object object, Object config,Object defaults)
  78. 作用:
  79. 把config、defaults两个对象的属性复制到objet中,但是当config、default两个对象的属性值发生冲 突时,config的属性值取胜。
  80. 8Ext.isXxx方法---用于判断是否为某某对象
  81. Ext.isXxx()方法代表系列的方法,它们都用于判断是否为某某对象,isXxx()方法总是返回Boolean值。
  82. 9Ext.eachExt.iterate方法
  83. Ext.each()方法用于遍历数组,它是Ext.Array.each()方法的别名。
  84. Ext.iterate()方法相当于Ext.Array.each()方法和Ext.Object.each()方法“综合体”,
  85. 当被遍历的数据是数组时,Ext.iterate()方法底层调用Ext.Array.each()方法进行遍历;
  86. 当被迭代的数据是对象时,Ext.iterate()方法底层调用Ext.Object.each()方法进行遍历;
  87. 三、Ext JS扩展的工具方法---更多方法参考:Ext JS API文档
  88. Ext JS扩展的所有工具方法都直接位于Ext命名空间下。
  89. Ⅰ、为Array扩展的工具方法---Ext.Array工具类
  90. JavaScript数组用做栈的两个方法如下:
  91. ①.push(ele):元素入栈,返回入栈后数组的长度。
  92. ②.pop():元素出栈,返回出栈的数组元素
  93. JavaScript数组作为队列使用的两个方法如下:
  94. ①.unshift(ele):元素入队列,返回入对列后数组的长度。
  95. ②.shift():元素出队列,返回出队列的数组元素。
  96. Ⅱ、为Date扩展的工具方法---Ext.Date工具类
  97. Ext.Date为操作Date对象提供了大量的工具方法
  98. 例如:Ext.Date.format()、Ext.Date.between()两个方法
  99. Ⅲ、为Function扩展的工具方法---Ext.Function工具类
  100. Ext.FunctionJavaScript函数新增了大量工具方法
  101. Ⅳ、为Number扩展的工具方法---4个工具类方法
  102. Ext.NumberJavaScript的数值类型的值
  103. Ext.Number.constrain()工具方法---Ext.Number.constrain(201030) //20截取傲10~30范围内
  104. Ext.Number.from()工具方法---Ext.Number.from("abc","20") //字符串abc转换为数值
  105. Ext.Number.snap()工具方法---Ext.Number.snap(23,7,10,20) //返回离23最近的7的倍数(必须在10~30之间)
  106. Ext.Number.snap()工具方法:作用--先获取距离指定数值最近的、特殊数值的倍数,然后将得到的数值截取 到指定范围之内。
  107. Ext.Number.toFixed()工具方法---Ext.Number.toFixed(3.2545,1) //3.2545保留1位小数点
  108. Ⅴ、为Object扩展的工具方法---Ext.Object工具类
  109. javaScript的对象不仅仅可以作为对象使用,还可以作为Java Map集合使用,javascript对象的每个属性名、属性值就相当于Map的key-value对(键值对)
  110. 例如:Ext.Object.each()、Ext.Object.toQueryString()、Ext.Object.fromQueryString()、Ext.Object.getKeys()、Ext.Object.getValues()等等
  111. Ⅵ、为String扩展的工具方法---Ext.String工具类
  112. Ext.String提供了大量工具方法来操作字符串,这些工具方法可以进一步增强字符串的功能
  113. Ext.String.format()方法比较实用,用于将字符串中的{0}、{1}、{2}....占位符替换成实际的值。
  114. Ⅶ、Ext.JSON方法
  115. JSON是一种非常有用的轻量级数据交换格式。
  116. Ext.JSON类提供了3个工具方法来完成javascript对象与JSON字符串的相互转化。
  117. Ext.JSON.encode()工具方法---用于把javascript对象或数组转换为JSON字符串
  118. Ext.JSON.encode()方法的别名是: Ext.encode()可直接使用
  119. Ext.JSON.decode()工具方法---用于把JSON字符串恢复成javascript数组或对象
  120. Ext.JSON.decode()方法的别名是: Ext.decode()可直接使用
  121. Ext.JSON.encodeDate()工具方法---用于编码一个日期。将返回的实际字符串,插入到JSON字符串作为 文本表达式。返回的默认格式是:"yyyy-mm-ddThh:mm:ss"
  122. Ext.JSON.encodeValue()工具方法---用于把javascript对象或数组转换为JSON字符串

Ext JS所有界面组件

  1. 1、使用Ext.container.Container--创建容器
  2. 2、使用Ext.panel.Panel--创建面板
  3. 3、使用Ext.toolbar.ToolBar--创建工具条
  4. 4、使用Ext.tab.Panel--创建Tab面板
  5. 5、使用Ext.container.Viewport--整体布局
  6. 6、使用Ext.window.Window--创建窗口
  7. 7、使用Ext.window.MessageBox--创建对话框
  8. 8、使用Ext.menu.CheckItemExt.menu.ColorPickerExt.menu.DatePicker实现特殊菜单项
  9. 9、使用Ext.Ation--创建按钮
  10. 10、使用Ext.ProgressBar--创建进度条
  11. 11、使用Ext.slider.Single--创建滑动条
  12. 12、使用Ext.Img--创建图片
  13. 13、使用Ext.Editor--创建编辑器
  14. 14、使用Ext.tip.ToolTip--创建提示
  15. 15、使用Ext.QuickTipManagerExt.tip.QuickTip--创建提示
  16. 16、使用Ext.ux.GMapPanel实现Google地图
  17. 17、使用Ext.form.field.ComboBox--创建复合框
  18. 18、使用Ext.data.StoreExt.data.Model管理数据
  19. 19、使用Ext.data.Proxy.ProxyExt.data.reader.Reader读取数据
  20. 20、使用Ext.grid.Panel--生成表格
  21. 21、使用Ext.grid.column.Column-定义列
  22. 22、使用Ext.grid.Panel显示远程数据
  23. 23、使用Ext.tree.Panel生成数
  24. ------------------------------------------------------------------------------------------------
  25. Ext JS所有界面组件都继承了Ext.Component,
  26. Ext.component的子类:Ext.container.Container则是其他组件的容器,用于盛装其他组件。
  27. 一、使用Ext.Component
  28. Ext.Component是最普通、没用额外附加行为的组件,该组件原本是"一无所有"的区域----空白的区域。
  29. 样例:
  30. <script type="text/javascript">
  31. //创建comp容器对象
  32. var comp = Ext.create('Ext.Component', {
  33. html: 'Hello world!',
  34. width: 300, //宽度
  35. height: 200, //高度
  36. padding: 20, //内边距
  37. style: { //设置样式
  38. color: '#FFFFFF',
  39. backgroundColor:'#000000'
  40. },
  41. renderTo:Ext.getBody() //指定将该组件追加到<body.../>元素中
  42. });
  43. copm.center(); //使用容器居中
  44. </script>
  45. 二、使用Ext.container.Container创建容器 --- 可以盛装其他组件
  46. Ext.container.Container代表一个空白的容器,
  47. 使用场景:需要现将多个组件"组合"在一起,再将他们放在页面上显示出来。
  48. 样例:
  49. <script type="text/script">
  50. // 显式创建一个容器
  51. Ext.create('Ext.container.Container', {
  52. //指定布局方式
  53. layout: {
  54. type: 'hbox'
  55. },
  56. width: 400,
  57. renderTo:Ext.getBody(),
  58. border: 1,
  59. style: {borderColor:'#000000', borderStyle:'solid', borderWidth:'1px'},
  60. // 指定对该容器中所有添加项进行默认设置
  61. defaults: {
  62. labelWidth: 80,
  63. // 隐式创建容器通过指定的xtype
  64. xtype: 'datefield',
  65. flex: 1,
  66. style: {
  67. padding: '10px'
  68. }
  69. },
  70. //指定该容器包含的组件
  71. items: [
  72. //第2个组件,xtype是datefield,表明是一个日期选择器
  73. {
  74. xtype: 'datefield',
  75. name: 'startDate',
  76. fieldLabel: 'Start date' //开始日期
  77. },{
  78. xtype: 'datefield',
  79. name: 'endDate',
  80. fieldLabel: 'End date' //结束日期
  81. }]
  82. });
  83. </script>
  84. 三、使用 Ext.panel.Panel --- 最常用的的容器类之一,Ext.window.Window和 Ext.tab.PanelExt.form.Panel
  85. Ext.panel.Panel继承了Ext.container.Container
  86. Ext.panel.Panel容器的功能更加丰富,它可以添加标题、工具条等等,更多参照API
  87. 样例:
  88. <script type="text/script">
  89. Ext.onReady(funtion(){
  90. // 创建Ext.panel.Panel容器对象
  91. var con = Ext.create('Ext.panel.Panel', {
  92. //指定布局方式
  93. layout: {
  94. align: 'center'
  95. },
  96. title:'查询图书'
  97. height:280, //指定高度
  98. width: 400, //指定宽度
  99. renderTo:Ext.getBody(),
  100. border: 1,
  101. style: {borderColor:'#000000', borderStyle:'solid', borderWidth:'1px'},
  102. // 指定对该容器中所有添加项进行默认设置
  103. defaults: {
  104. labelWidth: 80,
  105. flex: 1,
  106. style: {
  107. padding: '10px'
  108. }
  109. },
  110. //为该Panel设置工具按钮
  111. //无须指定xtype属性,默认就是tools值,即工具按钮
  112. tools:[
  113. {
  114. //指定刷新工具按钮
  115. type:'refresh',
  116. //工具提示
  117. tooltip:'刷新页面',
  118. //单击该工具按钮的事件处理函数
  119. handler:function(event,toolEl,panel)
  120. {
  121. alert("用户刷新数据");
  122. }
  123. },
  124. {
  125. //指定保存工具按钮
  126. type:'save',
  127. //工具提示
  128. tooltip:'保存数据',
  129. //单击该工具按钮的事件处理函数
  130. handler:function(event,toolEl,panel)
  131. {
  132. alert("用户保存数据");
  133. }
  134. }
  135. ],
  136. //指定该容器包含的组件
  137. items: [
  138. //第1个组件,没有指定xtype,默认是panel,表明嵌套了一个Panel
  139. {
  140. title:'出版社信息'
  141. height: 120, //指定高度
  142. fieldLabel: 'Start date' //开始日期
  143. },{
  144. xtype: 'datefield',
  145. name: 'endDate',
  146. fieldLabel: 'End date' //结束日期
  147. }]
  148. });
  149. });
  150. </script>

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

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

欢迎交流,进入博客网站:www.wangsong520.com进行留言交流,并且里面有更多知识分享!

转载于:https://www.cnblogs.com/stephenhuashao/p/6410207.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/322277
推荐阅读
相关标签
  

闽ICP备14008679号