




免费预览已结束,剩余41页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
extjs 培训,2009-4 电讯盈科企业解决方案,author:,目录,extjs简介,extjs简称ext,它是一个非常优秀的javascript开发框架,主要用来开发具有绚丽外观的富客户端web程序。 extjs提供了许多非常实用的可视化组件,为我们开发富客户端程序提供了许多功能强大的支持,关于extjs的相关基本概念及使用方法详见extjs的api文档。 特点: 1、开发速度快 2、界面效果绚丽 3、组件式开发 缺点: 报错不明确调试有一定的难度。,extjs简介,必须引入的extjs库文件及样式文件 ext-all.css ext-base.js ext-all.js ext-lang-zh_cn.js,extjs简介,常用开发工具 eclipse 插件 spket-1.6.16 编辑javascript fullsource 查看动态生成的html代码,extjs简介,常用文档 dhtml 手册.chm extjs2.0 api,目录,信息提示框,ext.msg.alert 注意:extjs中的信息提示框全部都是异步执行的,不会中断程序的执行,如果某些操作需要在信息提示框出现之后执行则相应的代码需要放置回调函数中。, ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; ext.msg.alert(提示,信息主体内容,function() alert(回调函数) ); ); ,信息提示框,ext.msg.confirm, ext.onready(function() ext.msg.confirm(提示,请单击我,做出选择,callback); function callback(id) alert(单击的按钮id是:+id); ); ,信息提示框,ext.mmpt, ext.onready(function() ext.mmpt(提示,输入一些内容看看:,callback,this,true); function callback(id,msg) alert(单击的按钮id是:+id+n+输入的内容是:+msg); ); ,信息提示框,ext.msg.wait, ext.onready(function() ext.msg.wait(请等待,操作需要很长时间!,提示, text : 进度条上的文字 ); ) ,信息提示框,ext.msg.show(自定义信息提示框), ext.onready(function() ext.msg.show( title:提示, msg:我有三个按钮,和一个多行文本区。, modal:true, prompt:true, value:请输入, fn:callback, buttons:ext.msg.yesnocancel, icon:ext.msg.question ) function callback(id,msg) alert(单击的按钮id是:+id+n+输入的内容是:+msg); ); ,目录,面板布局,fit 布局(子面板充满父面板), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var panel = new ext.panel( layout : fit, title:ext.layout.fitlayout布局示例, frame:true,/渲染面板 height : 150, width : 250, applyto :panel-div, defaults : /设置默认属性 bodystyle:background-color:#ffffff/设置面板体的背景色 , items: title : 子面板 ) ); ,面板布局,accordion布局(可折叠), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var panel = new ext.panel( layout : accordion, layoutconfig : fill : true/子面板充满父面板的剩余空间 , title:ext.layout.accordion布局示例, frame:true,/渲染面板 height : 150, width : 250, applyto :panel-div, defaults : /设置默认属性 bodystyle:background-color:#ffffff;padding:15px/设置面板体的背景色 , items: title : 嵌套面板一, title : 嵌套面板二 ) ); ,面板布局,card布局(卡片布局), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var panel = new ext.panel( layout : card, activeitem : 0,/设置默认显示第一个子面板 title:ext.layout.cardlayout布局示例, frame:true,/渲染面板 height : 150, width : 250, applyto :panel-div, defaults : /设置默认属性 bodystyle:background-color:#ffffff;padding:15px/设置面板体的背景色 , items: title : 嵌套面板一, title : 嵌套面板二 , buttons: text : 显示子面板一, handler : function() panel.layout.setactiveitem(0); , text : 显示子面板二, handler : function()panel.layout.setactiveitem(1); ) ); ,面板布局,column布局(列布局), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var panel = new ext.panel( title:ext.layout.columnlayout布局示例, layout : column, frame:true,/渲染面板 height : 150,width : 350, applyto :panel-div, defaults : /设置默认属性 bodystyle:background-color:#ffffff;,/设置面板体的背景色 height : 100, frame:true/渲染面板 , items: title:子面板一, width : 100/指定列宽为100像素 , title:子面板二, columnwidth:.3/指定列宽为容器剩余宽度的30% , title:子面板三, columnwidth:.7/指定列宽为容器剩余宽度的70% ) ); ,面板布局,table布局(表格布局), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var panel = new ext.panel( title:ext.layout.tablelayout布局示例, layout : table, layoutconfig : columns : 4, /设置表格布局默认列数为4列 frame:true,/渲染面板 height : 150,width : 300, applyto :panel-div, defaults : /设置默认属性 bodystyle:background-color:#ffffff;,/设置面板体的背景色 frame : true, height : 50 , items: title:子面板一,colspan : 3,/设置跨列 title:子面板二,height : 100,rowspan : 2,/设置跨行 title:子面板三, title:子面板四, title:子面板五 ) ); ,面板布局,border布局, ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var panel = new ext.panel( title : ext.layout.borderlayout布局示例, layout:border,/表格布局 height : 250, width : 400, applyto : panel-div, items: title: north panel,html : 上边,collapsible : true, region: north,/指定子面板所在区域为north height: 50 , title: south panel,html : 下边, height: 50 region: south/指定子面板所在区域为south , title: west panel,html : 左边, width: 100, region:west/指定子面板所在区域为west , title: east panel,html : 右边, width: 100, region:east/指定子面板所在区域为east , title: main content,html : 中间, region:center/指定子面板所在区域为center ); ); ,面板布局,ext.viewport(自动充满整个页面), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; new ext.viewport( title : ext.viewport示例, layout:border,/表格布局 items: title: north panel, html : 上边, region: north,/指定子面板所在区域为north height: 100 , title: west panel, html : 左边, region:west,/指定子面板所在区域为west width: 150 , title: main content, html : 中间, region:center/指定子面板所在区域为center ); ); ,面板布局,ext.tabpanel(页签面板), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var tabpanel = new ext.tabpanel( height : 150, width : 300, activetab : 0,/默认激活第一个tab页 animscroll : true,/使用动画滚动效果 enabletabscroll : true,/tab标签超宽时自动出现滚动按钮 applyto : panel-div, items: title: tab标签页1,html : tab标签页1内容, title: tab标签页2,html : tab标签页2内容, title: tab标签页3,html : tab标签页3内容, title: tab标签页4,html : tab标签页4内容, title: tab标签页5,html : tab标签页5内容 ); ); ,目录,常用组件介绍,ext.panel 标准面板组件 new ext.panel( title:面板头部(header), tbar : 顶端工具栏(top toolbars), bbar : 底端工具栏(bottom toolbars), height:200, width:300, frame:true, applyto :panel, bodystyle:background-color:#ffffff, html:sdfasdfasdf, tools : id:toggle, id:close, id:maximize , buttons: new ext.button( text:面板底部(footer) ) ),常用组件介绍,ext.grid.gridpanel 表格面板组件,/创建表格数据 var data = 1,张三,24,2,李四,30,3,王五,29; /创建记录类型person,mapping值为字段值对应数组中数据的索引位置 var person = ext.data.record.create( name: personid,mapping: 0, name: personname,mapping: 1, name: personage,mapping: 2, ); /创建grid表格组件 new ext.grid.gridpanel( title : 简单grid表格示例, applyto : grid-div, width:230, height:150, frame:true, store: new ext.data.store(/配置数据集 reader: new ext.data.arrayreader(id:0,person), data: data ), columns: /配置表格列 header: “id“, width: 30, dataindex: personid, sortable: true, header: “姓名“, width: 80, dataindex: personname, sortable: true, header: “年龄“, width: 80, dataindex: personage, sortable: true ),常用组件介绍,ext.tree.treepanel 树形面板组件(读取本地数据),/创建根节点 var root = new ext.tree.treenode( text : 根节点 ); /为根节点添加子节点 root.appendchild(new ext.tree.treenode( text : 一级子节点a ) root.appendchild(new ext.tree.treenode( text : 一级子节点b ) /创建tree面板组件 var tree = new ext.tree.treepanel( title : 简单的树面板示例, width : 200, height : 100, applyto : tree-div, root : root ),常用组件介绍,ext.tree.treepanel 树形面板组件(加载远程数据),/创建根节点 var root = new ext.tree.asynctreenode( text : 菜单根节点, id : root, /设置异步树节点的数据加载器 loader : new ext.tree.treeloader( dataurl : serverurl ) ); /创建tree面板组件 var tree = new ext.tree.treepanel( title : 异步加载树节点示例, width : 200, height : 150, applyto : tree-div, root : root );,请求的服务器端数据格式: id:level1-1,text:一级节点,leaf:true, id:level1-2,text:一级节点,leaf:false, id:level1-4,text:一级节点,leaf:true ,常用组件介绍,ext.form.formpanel 表单面板组件,ext.quicktips.init();/初始化信息提示功能 var form = new ext.form.formpanel( title:表单,/表单标题 height:100,/表单高度 width:300,/表单宽度 frame:true,/是否渲染表单 labelseparator ::,/分隔符 labelwidth : 60,/标签宽度 labelalign : right,/标签对齐方式 applyto :form, items: new ext.form.textfield(/文本框 fieldlabel : 姓名,/标签内容 allowblank : false,/是否允许为空 msgtarget :side/显示一个浮动的提示信息。 ), new ext.form.numberfield( fieldlabel : 年龄, allowblank : false, msgtarget :side ) ),常用组件介绍,ext.window(弹出窗口), ext.onready(function() ext.blank_image_url = /extjs2.0/resources/images/default/s.gif; var win = new ext.window( title : 弹出窗口, width : 200, height : 150, html : 模式窗口, modal : true/是否为模式窗口 ); win.show(); ); ,目录,数据模型,store 数据源,record 记录,reader 数据读取器,proxy 代理,数据模型,常用数据代理: ext.data.httpproxy 用于读取远程数据 /创建http代理 new ext.data.httpproxy( url : personserver.do ) ext.data.memoryproxy 用于读取本地数据 /定义内存数据变量 var data = 1,张三,24,2,李四,30,3,王五,29; /创建memory代理 var memoryproxy = new ext.data.memoryproxy(data) ext.data.scripttagproxy 用于跨域读取数据(不常用) /创建scripttagproxy代理 var scripttagproxy = new ext.data.scripttagproxy( /于当前服务器处于不同域中的url地址 url : 02:8080/scripttagproxyserver.jsp ),proxy 代理,数据模型,常用数据读取器 ext.data.jsonreader 读取json数据 results: 2, rows: id: 1, name: bill, occupation: gardener , id: 2, name: ben, occupation: horticulturalist ext.data.arrayreader 读取数组数据 1,张三,24,2,李四,30,3,王五,29 ext.data.xmlreader 读取xml数据 2 1 bill gardener ,reader 数据读取器,数据模型,ext.data.store 标准数据源 new ext.data.store( proxy : new ext.data.httpproxy(.), reader : new ext.data.jsonreader(.) ) ext.data.simplestore 简单数据源,内置了arrayreader ext.data.jsonstore json数据源,内置了jsonreader ext.data.groupingstore 分组数据源,提供了数据的分组功能 一般搭配ext.grid.groupingview使用,store 数据源,数据模型,数据记录 由数据代理(proxy)获取的原始数据经过数据读取器(reader)解析后最终统一转化为标准的数据记录对象保存在数据源(store)中,供其他组件使用。 /创建记录类型person var person = ext.data.record.create( name: personname, name: personage, ); /新建一条person类型的记录 var mynewrecord = new person( personname : tom, personage : 24 );,record 记录,数据模型,数据生成 由于在开发过程中大量的用到了json或xml作为数据传递方式,因此需要一种方便的数据转换方法生成为json或xml,目前我们提供了一些工具方法来完成这个转化过程,下面是一个将java的list集合转化为xml的示例: 定义一个javabean,必须提供get和set方法。 将数据填充到javabean中,并依次追加到list集合中。 调用工具方法完成数据转换,下面列出了目前主要的转换方法。 jsonhelper.gettextfromlist(beanlist) /输出extjs可用的json字符串 jsonhelper.gettextfromlist(long recordcount, list beanlist) jsonhelper.getxmlfromlist(beanlist) /输出extjs可用的xml jsonhelper.getxmlfromlist(long recordtotal, list beanlist) queryresult /实现查询结果的简单封装,支持分页及xml、json输出。,目录,事件绑定,为extjs组件添加事件处理函数(事件监听器),addlistener( string eventname, function handler, object scope, object options ) 简写形式 on( string eventname, function handler, object scope, object options ) /绑定单个事件处理函数 el.on(click, this.onclick, this, single: true, delay: 100, forumid: 4 ); /绑定多个事件处理函数 foo.on( click : fn: this.onclick, scope: this, delay: 100 , mouseover : fn: this.onmouseover, scope: this ); /简化的写法 component.on(click,function(param) /处理代码 );,事件解除,解除已经绑定到extjs组件上的事件处理函数(监听器),removelistener( string eventname, function handler, object scope ) 简写形式 un( string eventname, funct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中英语人教新目标 (Go for it) 版九年级全册Unit 2 I think that mooncakes are delicious!Section B教学设计及反思
- 人教部编版五年级上册10 传统美德 源远流长第1课时教学设计
- 电机岗位基础知识培训
- 2024北京国家金融科技风险监控中心有限公司招聘产品经理笔试参考题库附带答案详解
- 诚信体系建设培训教程
- 2024人民日报社新疆分社公开招聘工作人员1人笔试参考题库附带答案详解
- 六年级数学下册 第4单元 比例 2正比例和反比例练习课(正比例和反比例)教学设计 新人教版
- 人教版八年级下册第三单元《第2课 摆件巧安排》教学设计
- 2024中铝招标有限公司面向集团内部公开招聘14人笔试参考题库附带答案详解
- 七年级道德与法治下册 第四单元 走进法治天地第九课 法律在我们身边 第2框法律保障生活教学设计 新人教版
- 网络互连技术-管控IP数据通信ACL(访问控制列表)
- 幼儿园故事课件:《狼来了》
- 对口支援乡镇卫生院工作医师考核登记表
- 云县生活垃圾填埋场沼气污染治理及综合利用项目环评报告
- 小学英语公开课The-Hug课件
- 第十章 思想政治教育的方法和艺术
- 碱柜治超大队检测站应急预案
- 免疫比浊分析(免疫学检验课件)
- 生物技术概论(全套课件958P)
- 古代朝代的官职名称及等级
- 第五版-FMEA-新版FMEA【第五版】
评论
0/150
提交评论