




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基础篇基础篇(5):ExtJs中的模板详解中的模板详解讲师:风舞烟ExtJs版版国讯教育通用智能国讯教育通用智能OA办公平台办公平台Ext.DomHelper简介Template语法使用简介Template简单应用Template中使用转换函数使用模板的自定义接口XTemplate应用复杂模板综合应用Ext.DomHelper 处理DOM或模板(Templates)的实用类。能以JavaScript较清晰地编写HTML片段(HTML fragments)或DOM。如以下范例产生五个子元素的无须列表,追加到当前元素my-div: 常用方法Template语法使用简介 在一些复杂的情况下,我们需要
2、生成HTML片断,这时最常用,最简单,最有效率的一种做法就是应用Ext提供的模板来完成。说明:Templete 是模板之意,就是定义一段 HTML 代码,并放置若干个作为占位符,运行时将数据填充到中去。看来看去,和java中的MessageFormat及C#中的string.formate很像。XTemplate和DomHelper有很深的渊源,DomHelper是XTemplate的小弟,DomHelper解决不了的事情,XTemplate一定可以。 使用XTemplate一般会经历三个步骤: 1、定义XTemplate对象,指定一段HTML代码作为模板; 2、指定XTemplate中定义的
3、HTML应该放置的位置,并填充占位符信息; 3、编译XTemplate。 Template简单应用Ext.onReady(function() var xt = new Ext.Template( , , 2, 3, 4, , ); xt.append(xt, 1, 300, 单元格1, 单元格2, 单元格3); pile(); ) 页面如下: 实例化Template时,可以配置任意个参数,会自动连接到一起,这种写法似乎更方便更好读。append方法同 DomHelper 的 append方法,实际上还有 insertBefore、insertAfter、insertFirst、overwri
4、te 等方法,不同的是第二个参数,该参数是要填充到占位符中的数据,可以是数组,也可以是json对象。执行完之后得到如下结果: 单元格1 单元格2 单元格3 下面是改造后的例子,填充数据时用json对象代替了原来的数组:Ext.onReady(function() var xt = new Ext.Template( , , v1, v2, v3, , ); xt.append(xt, b: 1, w: 300, v1: 单元格1, v2: 单元格2, v3: 单元格3); pile(); ) Template中使用转换函数eg: var xt = new Ext.Template( , , v
5、1, v2:trim, v3:ellipsis(4), , ); xt.append(xt, b: 1, w: 300, v1: 单元格1, v2: 单元格2, v3: 单元格3 ); pile();Ext.DomHelper简介Template语法使用简介Template简单应用Template中使用转换函数使用模板的自定义接口XTemplate复杂模板综合应用JavaScript代码 var data = 1,male,name1,descn1, 2,female,name2,descn2, 3,male,name3,descn3, 4,female,name4,descn4, 5,mal
6、e,name5,descn5 ; var t = new Ext.Template( , 0, 1:this.renderSex, 2:trim, 3:ellipsis(10), ); t.renderSex = function(value) if (value = male) return 红男; else return 绿女; ; pile(); for (var i = 0; i data.length; i+) t.append(Ext.get(some-element), datai); HTML代码 id sex name descn Ext.DomHelper简介XTempla
7、te语法使用简介XTemplate简单应用XTemplate中使用转换函数使用模板的自定义接口复杂模板综合应用XTemplate对Template的功能进行了增强,XTemplate不仅支持在模板内部使用子模板,还具有for和if的功能,可以让我们在模板中实现循环和判断等功能例4-3:1、界面HTML:2、js: var data = name: s, size: 5, options: value: 河北, text: 河北省, value: 唐山, text: 唐山市, value: 路北, text: 路北区 ; var t = new Ext.XTemplate( , text:ell
8、ipsis(10), ); t.append(f, data);例4-4:操作简单数组Ext.onReady(function() var data = name: s, size: 5, options: 河北省,唐山市,路北区 ; var t = new Ext.XTemplate( , .:ellipsis(10), ); t.append(f, data););例4-5: Ext.onReady(function() var data = name: 博客园, read: book: , date: 2007-7-7 , book: , date: 2006-6-6 /呈现组件 var
9、 mypanel = new Ext.Panel( width: 400, id: mypanel, title: XtemplateData简单示例, renderTo: Ext.getBody() ); /创建模板 var tpl = new Ext.XTemplate( 名称:name, /对于一维单数据对象,直接用名称输出, , , /对于多维对象(如拥有多条数据的表), 编号:#,书:book,日期:date, ); /重写绑定模板(/把数据填充到模板中去,并呈现到目标组件) tpl.overwrite(mypanel.body, data); );简要说明如下:pile();/可以
10、在创建模板后,添加pile();编译代码,速度快点.2. tpl.overwrite(mypanel.body,data);/把数据填充到模板中去,并呈现到目标组件3.名称:name/对于一维单数据对象,直接用名称输出,4.,/对于多维对象(如拥有多条数据的表),使用tpl和for配合使用,会使用tpl的格式把数据一条一条输出,read为上级节点5./对于一维对数据的对象,如color: Red, Blue, Black,可以用.按照tpl模板逐一输出,如: , ., 6.#/表示循环的索引7.if/, name, , /if实现有条件的逻辑判断,很容易使用8.其他几个常用的参数: xinde
11、x/循环模板的当前索引index(从1开始),用。 xcount/循环模板循环的次数。 用 举例: , 编号:#,书:book,日期:date,奇偶:xindex%2=0?偶数:奇数,次数:xcount, 10.模板成员函数:var tpl = new Ext.XTemplate( , , Girl: name - age, , , Boy: name - age, , , isGirl: function(name) return name = tom; , isBaby: function(age) return age 1; );Ext.DomHelper简介XTemplate语法使用简
12、介XTemplate简单应用XTemplate中使用转换函数使用模板的自定义接口复杂模板综合应用实例演示实例演示:用模板呈现服务器数据用模板呈现服务器数据 Ext.onReady(function() var mydata; Ext.Ajax.request( url:getXtemplateData.ashx,/服务器端地址 success:function(request) mydata=request.responseText;/服务器端文本数据 mydata=eval(+mydata+);/使用eval把文本数据转换为json对象 /或者用extjs自带的方法:mydata=Ext.util.JSON.decode(mydata),效果相同 var tpl2=new Ext.XTemplate( 编号名称地址位置, , #linknamelinkurllinkpos, ); pile(); tpl2.overwrite(Ext.get(container),mydata); , failure:function() alert(failure!); );)服务器返回的数据(getXtemplateData.aspx)results:id:1,linkname:博客园,linku
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 23595.1-2025LED用稀土荧光粉试验方法第1部分:光谱的测定
- 包装回收合同范例
- 北京合伙合同范本培训
- 中介代办合同范例
- 个人汽车置换合同范本
- 办公住宿出租合同范本
- 出租铺面合同范本
- 三方合伙范本合同范本
- 履约反担保合同范本
- 单位职工租房合同范例
- 1.2 男生女生 (课件)2024-2025学年七年级道德与法治下册(统编版2024)
- 中央2025年公安部部分直属事业单位招聘84人笔试历年参考题库附带答案详解
- 2025年江苏医药职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年常德职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2024年公安部直属事业单位招聘笔试真题
- 民政局2025年度离婚协议书官方模板4篇
- 绿色建筑材料在土木工程施工中的应用研究
- 上海市2024-2025学年高一上学期期末考试数学试题(含答案)
- KCA数据库试题库
- 2024-2025学年五年级数学上册名校真题 期末考试综合检测卷
- 2025年市青年企业家商会工作计划
评论
0/150
提交评论