- 浏览: 77141 次
文章分类
最新评论
-
angryfrank:
收获良多,赞
ExtJS4学习笔记十--Grid使用 -
万俟辉夜:
楼主知不知道怎么通过已知的行数和列数取得grid中该单元格的信 ...
ExtJS4学习笔记十--Grid使用 -
endual:
请问博主,我是用mvc的,请问form.panel怎么绑 ...
ExtJS4学习笔记九--数据模型的使用 -
365353650:
<%@ page language="java ...
ExtJS4学习笔记九--数据模型的使用 -
binjoo:
有password类型的文本框??
ExtJS4学习笔记二--表单控件相关
1、append方法
2、overwrite方法:
3、模板中使用格式化函数:
4、使用自定义格式化函数解析多层json对象
5、使用tpl标签和for运算符
6、使用parent在子模板中访问父对象
7、数组索引与简单数学运算
8、自动渲染简单数组
9、基本的条件逻辑判断
10、在模板中执行任意代码
11、使用模板成员函数
12、在Extjs组件中使用模板
13、Ext.view.View示例
var tpl = new Ext.Template(//定义模板 '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td width=90>姓名</td><td width=90>{0}</td></tr>', '<tr><td>年龄</td><td>{1}</td></tr>', '<tr><td>性别</td><td>{2}</td></tr>', '</table>' ) //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',['小王',25,'男']);
2、overwrite方法:
var tpl = new Ext.Template(//定义模板 '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td width=90>姓名</td><td width=90>{name}</td></tr>', '<tr><td>年龄</td><td>{age}</td></tr>', '<tr><td>性别</td><td>{sex}</td></tr>', '</table>' ) //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.overwrite('tpl-table',{name:'小王',age:25,sex:'男'});
3、模板中使用格式化函数:
//定义模板,并指定模板数据的格式化函数 var tpl = new Ext.Template([ '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td width=90>员工姓名</td>', //{userName:capitalize}使用标准字符串格式化函数,字符串首字母大写 '<td width=120>{userName:capitalize}</td></tr>', '<tr><td width=90>工作日期</td>', //{WorkDate:this.cusFormat()}使用自定义格式化函数 '<td width=120>{WorkDate:this.cusFormat()}</td></tr>', '</table>' ]); //定义模板数据 var tplData = { userName : 'tom', WorkDate : new Date(2002,7,1) } //模板的自定义格式化函数 tpl.cusFormat = function(date,o){ return Ext.Date.format(date,'Y年m月d'); } //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
4、使用自定义格式化函数解析多层json对象
//定义模板,并指定模板数据的格式化函数 var tpl = new Ext.Template( '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td width=90 >姓名</td>', '<td width=120>{name}</td></tr>', '<tr><td width=90 >年龄</td>', '<td width=120>{age}</td></tr>', '<tr><td width=90 >身高</td>', '<td width=120>{stature:this.parseJson}</td></tr>', '</table>' ); //定义模板数据 var tplData = { name : 'tom', age : 24, stature : { num : 170, unit : 'cm' } } //通过自定义格式化函数解析json对象 tpl.parseJson = function(json){ return json.num + json.unit; } //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
5、使用tpl标签和for运算符
//定义模板,使用tpl标签和for运算符 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td width=90 >姓名</td><td width=90 >年龄</td></tr>', '<tpl for=".">', '<tr><td>{name}</td><td>{age}</td></tr>', '</tpl>', '</table>' ); //定义模板数据 var tplData = [ {name:'张三',age:20}, {name:'李四',age:25}, {name:'王五',age:27}, {name:'赵六',age:26} ] //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
6、使用parent在子模板中访问父对象
//定义模板,使用parent在子模板中访问父对象 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td width=90 >姓名</td><td width=90 >年龄</td><td width=90 >公司</td></tr>', '<tpl for="emps">', '<tr><td>{name}</td><td>{age}</td><td>{parent.companyName}</td></tr>', '</tpl>', '</table>' ); //定义模板数据 var tplData = { companyName : 'ACB公司', emps:[ {name:'张三',age:20}, {name:'李四',age:25}, {name:'王五',age:27}, {name:'赵六',age:26} ] } //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
7、数组索引与简单数学运算
//定义模板,数组索引与简单数学运算 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td>序号</td><td width=90 >姓名</td><td width=90 >工资</td></tr>', '<tpl for=".">', '<tr><td>{#}</td><td>{name}</td><td>{wage * .9}</td></tr>', '</tpl>', '</table>' ); //定义模板数据 var tplData = [ {name : '张三',wage : 1000}, {name : '李四',wage : 1200}, {name : '王五',wage : 900}, {name : '赵六',wage : 1500} ] //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
8、自动渲染简单数组
//定义模板,自动渲染简单数组 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td>序号</td><td width=90 >姓名</td></tr>', '<tpl for=".">', '<tr><td>{#}</td><td>{.}</td></tr>', '</tpl>', '</table>' ); //定义模板数据 var tplData = ['张三','李四','王五','赵六'] //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
9、基本的条件逻辑判断
//定义模板,基本的条件逻辑判断 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0>', '<tr><td>序号</td><td width=90 >姓名</td><td width=90 >工资</td></tr>', '<tpl for=".">', '<tpl if="wage > 1000">', '<tr><td>{#}</td><td>{name}</td><td>{wage}</td></tr>', '</tpl>', '</tpl>', '</table>' ); //定义模板数据 var tplData = [ {name : '张三',wage : 1000}, {name : '李四',wage : 1200}, {name : '王五',wage : 900}, {name : '赵六',wage : 1500} ] //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
10、在模板中执行任意代码
<style type="text/css"> .even { background-color: #CCFFFF; } .odd { background-color: #FFFFFF; } .title {text-align: center;} </style>
//定义模板,在模板中执行任意代码 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0 class=title>', '<tr><td>序号</td><td width=90 >姓名</td><td width=90 >工资</td><td width=90 >奖金</td></tr>', '<tpl for="emps">', '<tr class="{[xindex % 2 == 0 ? "even" : "odd"]}">', '<td>{[xindex]}</td><td>{[values.name]}</td>', '<td>{[values.wage * parent.per]}</td>', '<td>{[Math.round(values.wage * parent.per / xcount)]}</td></tr>', '</tpl>', '<tr><td>发薪时间</td><td colspan=3>{[fm.date(new Date,"Y年m月d日")]}</td></tr>', '<tr><td>工资总计</td><td colspan=3>{[this.avgWage(values)]}</td></tr>', '</table>' ); //模板的自定义格式化函数,用于计算工资总计 tpl.avgWage = function (o) { var sum = 0; var length = o.emps.length; for(var i = 0 ; i <length ; i++){ sum += o.emps[i].wage; } return sum * o.per; } //定义模板数据,per表示发薪比例,wage表示标准工资 var tplData = { per : 0.9, emps : [ {name : '张三',wage : 1000}, {name : '李四',wage : 1200}, {name : '王五',wage : 900}, {name : '赵六',wage : 1500} ] } //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
11、使用模板成员函数
//定义模板,在模板中使用模板成员函数 var tpl = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0 class=title>', '<tr><td width=90 >姓名</td><td width=90 >工资</td></tr>', '<tpl for=".">', '<tpl if="this.check(wage)">', '<tr><td>{name}</td>', '<td>{[this.format(values.wage)]}</td>', '</tpl></tpl>', '</table>', { //定义模板成员函数 check : function(wage) { if(wage > 1000){ return true; }else { return false } }, //定义模板成员函数 format : function(wage) { if(wage > 1300){ return '<font color=red>'+wage+'</font>'; }else { return '<font color=blue>'+wage+'</font>'; } } } ); //定义模板数据,per表示发薪比例,wage表示标准工资 var tplData = [ {name : '张三',wage : 1000}, {name : '李四',wage : 1200}, {name : '王五',wage : 900}, {name : '赵六',wage : 1500} ] //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中 tpl.append('tpl-table',tplData);
12、在Extjs组件中使用模板
<style type="text/css"> .even { background-color: #CCFFFF; } .odd { background-color: #FFFFFF; } </style>
//定义组合框模板 var itemTpl = new Ext.XTemplate( '<div class="x-combo-list-item {[xindex % 2 == 0 ? "even" : "odd"]}">', '{#} :{[this.check(values)]}</div>', { check : function (values) { if(values.value > 2 ){ return "<font color=red>"+values.item+"</font>"; }else { return "<font color=blue>"+values.item+"</font>"; } } } ); //创建数据模型 Ext.regModel('ItemInfo', { fields: ['item','value'] }); new Ext.form.Panel({ title:'在Extjs组件中使用模板', renderTo: Ext.getBody(), bodyPadding: 5, height : 100, frame : true, width : 350, items : [{ xtype : 'combo', fieldLabel:'邮政编码', displayField:'item', valueField:'value', labelSeparator :':',//分隔符 listConfig : { itemTpl : itemTpl }, editable : false, queryMode: 'local', triggerAction: 'all', store : new Ext.data.Store({ model : 'ItemInfo', fields: ['item','value'], data : [{item:'条目1',value:1}, {item:'条目2',value:2}, {item:'条目3',value:3}, {item:'条目4',value:4}, {item:'条目5',value:5}, {item:'条目6',value:6}] }) }] });
13、Ext.view.View示例
var inputForm = Ext.create('Ext.form.Panel',{ bodyPadding: 5, width : 490, flex : 2, fieldDefaults:{//统一设置表单字段默认属性 labelSeparator :':',//分隔符 labelWidth : 60,//标签宽度 width : 150,//字段宽度 msgTarget : 'side', allowBlank : false, labelAlign : 'right' }, layout: {//设置容器字段布局 type: 'hbox', align: 'middle'//垂直居中 }, defaultType: 'textfield',//设置表单字段的默认类型 items:[{ fieldLabel:'产品名称', name : 'productName' },{ fieldLabel:'数量', xtype : 'numberfield', name : 'productNum' },{ fieldLabel:'金额', xtype : 'numberfield', name : 'productPrice' }], fbar : [{ text : '添加', handler : function(){ if(inputForm.getForm().isValid()){ var data = inputForm.getForm().getValues(); var product = Ext.ModelMgr.create(data, 'ProductInfo'); productStore.add(product); inputForm.getForm().reset(); } } }] }); //创建数据模型 Ext.regModel('ProductInfo', { fields: ['productName','productNum','productPrice'] }); //创建产品数据源 var productStore = Ext.create('Ext.data.Store',{ autoLoad : true, data : [], model : 'ProductInfo', proxy: { type: 'memory', reader: { type: 'json', root: 'datas' } } }); //定义模板 var productTpl = new Ext.XTemplate( '<table border=1 cellspacing=0 cellpadding=0 width=100%>', '<tr><td width=160>产品名称</td><td width=75>数量</td><td width=75>金额</td></tr>', '<tpl for=".">', '<tr><td>{productName}</td><td>{productNum}</td><td>{productPrice}</td></tr>', '</tpl>', '</table>' ); //产品数据视图 var productView = Ext.create('Ext.view.View',{ store: productStore, tpl: productTpl, deferEmptyText : false, itemSelector:'div.thumb-wrap', emptyText: '请录入商品' }); //产品面板 var productViewPanel = Ext.create('Ext.panel.Panel',{ autoScroll:true, width : 490, flex : 3, layout : 'fit', bodyStyle:'background-color:#FFFFFF', items: productView }); Ext.create('Ext.panel.Panel',{ renderTo: document.body, frame:true, width : 500, height: 200, layout:'vbox', title:'产品录入', items: [inputForm, productViewPanel] });
发表评论
-
ExtJS4学习笔记十一 树控件的使用
2011-09-01 16:17 3227一、树面板简单示例 var ... -
ExtJS4学习笔记十--Grid使用
2011-09-01 15:24 16247一、grid的例: //配置表 ... -
ExtJS4学习笔记九--数据模型的使用
2011-09-01 14:43 61541、创建Ext.data.Model数据 ... -
ExtJS4学习笔记七--事件绑定相关
2011-09-01 11:27 5968一、addListener方法 var button = Ex ... -
ExtJS4学习笔记六--一些小知识点
2011-09-01 09:31 49341、获取页面上的HTML元素,并进行处理,使用Ext.get( ... -
ExtJS4学习笔记五--面板使用
2011-08-31 17:06 5546标准面板: Ext.create('Ext.panel.Pan ... -
ExtJS4学习笔记四--图片上传
2011-08-31 15:51 3979前端程序: <HTML> <HEAD&g ... -
ExtJS4学习笔记三--远程访问数据源示例
2011-08-31 15:10 3301前端页面: <HTML> <HEAD&g ... -
ExtJS4学习笔记二--表单控件相关
2011-08-31 14:29 11394二、表单部分相关 <HTML> <HEA ... -
ExtJs4学习笔记一--基础知识
2011-08-31 11:42 5601开始学习ExtJs4,陆续记录学习过程,希望有所用处: 特别注 ...
相关推荐
Extjs4.0学习笔记,以下是部分介绍: xtjs4,创建Ext组件有了新的方式,就是...ExtJS4学习笔记(八)---Grid多选/全选 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(十)---ExtJS4图片验证码的实现
ExtJS4学习笔记(八)---Grid多选 全选 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(十)---ExtJS4图片验证码的实现 ExtJS4学习笔记(十一)---TabPanel ExtJS4学习笔记(十三)---上传文件(upload) ExtJS4学习笔记...
目录 1. ExtJs 结构树 2 2. 对ExtJs的态度 3 3. Ext.form概述 4 4. Ext.TabPanel篇 5 5. Function扩展篇 7 6. Ext.data.Store篇 10 7. Ext.data.JsonReader篇一 12 ...28. extJs 2.0学习笔记(ext.js篇) 77
NULL 博文链接:https://lucky16.iteye.com/blog/1490278
官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...
Extjs6.2 生成的admin-dashboard官方模板
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...
### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...
语言程序设计资料:ExtJs学习笔记-2积分.doc
exjts4 学习笔记源码,源码包含windws,hbox,vbox和Grid的应用,其中grid介绍比较多。下载解压后,部署后就可以使用,所有代码均在demo文件夹下。更多extjs4教程,请关注http://www.mhzg.net
在标题"extjs2----关于extjs 的使用,操作"中,我们可以看出这是一份关于ExtJS 2.0版本的使用指南,主要涵盖了其基本操作和应用。描述中提到内容较为初级,适合初学者学习,这表明我们将探讨的是ExtJS的基础概念和...
"extjs-theme-bootstrap-master.zip" 文件很可能是ExtJS的一个主题包,它集成了Bootstrap的样式,使得ExtJS组件能够呈现出Bootstrap的经典外观。 在深入讲解这个主题之前,让我们先了解一下基础概念: 1. **ExtJS*...
一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa
在本篇《ExtJS4学习笔记十一:树控件的使用》中,我们将深入探讨ExtJS框架中的树形控件(TreePanel),这是一种强大的UI组件,用于展示层次结构的数据。ExtJS4对树控件的功能进行了增强,使其更加灵活且易于使用。...
extjs4.0开发人员以及学习可以下载参考
Extjs4.0学习笔记大全.pdf,供大家学习
ExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.doc
ext基本的控件例子ext基本的控件例子ext基本的控件例子ext基本的控件例子