extjs模板的使用

[ExtJS] tpl的html中放置extjs控件 使用ExtJS开发时,有些样式不好写,需要用tpl自己手绘html样式。 但是这些绘制的html,又想要点击可以用extjs控件进行编辑,如下图 这个是用DataView一类,含有tpl(或itemtpl)一类控件绘制的 在进行替换时,主要通过 htmlDom对象.replaceWith(extjs控件.el); 或采用 htmlDom对象.doReplaceWith(extjs控... 阅读详情

原文链接:http://dengm1010.iteye.com/blog/376555



Ext.onReady(function(){

Ext.onReady(function(){
//定义模板 使用标签tpl和操作符for
var tpl1 = 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>'
);

//通过自定义格式化函数解析json对象  {stature:this.parseJson()}
var tpl2 = 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>'
);

tpl2.parseJson = function(json){
return json.num + json.unit;
}

//数组索引与简单数学运算 {#} 每一项都加上序号
var tpl3 = 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 tpl4 = 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>'
);
 
//基本的条件逻辑判断  这没有else的操作符 如需要,就要写两个逻辑相反的if的语句
//输出工资大于1000的员工信息 工资 * 0.9
var tpl5 = 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 &gt; 1000">',
'<tr><td>{#}</td><td>{name}</td><td>{wage * .9}</td></tr>',
'</tpl>',
'</tpl>',
'</table>'
);
 
//定义组合框模板  xindex:若是循环模板,这是当前循环的索引index(从1开始)。
//   values:当前作用域下的值
var itemTpl = new Ext.XTemplate(
'<tpl for=".">',
'<div class="x-combo-list-item {[xindex % 2 == 0 ? "even" : "odd"]}">',
'{#} :{[this.check(values)]}</div>',
'</tpl>',
{
check : function (values) {
if(values.value > 2 ){
return "<font color=red>"+values.item+"</font>";
}else {
return "<font color=blue>"+values.item+"</font>";
}
}
}
)
new Ext.form.FormPanel({
applyTo :'target',
title:'在Extjs组件中使用模板',
labelSeparator :':',//分隔符
height : 100,
frame : true,
width : 350,
items : [
new Ext.form.ComboBox({
fieldLabel:'combo',
displayField:'item',
valueField:'value',
tpl : itemTpl,//引入自定义模板
editable : false,
mode: 'local',
triggerAction: 'all',
store : new Ext.data.SimpleStore({
fields: ['item','value'],
data : [['条目1',1],['条目2',2],['条目3',3],
       ['条目4',4],['条目5',5],['条目6',6]]
})
})
]
});
 

var productTpl = new Ext.XTemplate(
'<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>'
);
Ext.get('addProduct').on('click',function(){
var pname = Ext.get('productName').getValue();
var pnum = Ext.get('productNum').getValue();
var pprice = Ext.get('productPrice').getValue();
productTpl.append('product-table',[pname,pnum,pprice]);
});
 
//定义模板数据
var data1 = [
{name:'张三',age:20},
{name:'李四',age:25},
{name:'王五',age:27},
{name:'赵六',age:26}
];

var data2 = {
name : 'tom',
age : 24,
stature : {
num : 170,
unit : '厘米'
}
};

var data3= [
{name : '张三',wage : 1000},
{name : '李四',wage : 1200},
{name : '王五',wage : 900},
{name : '赵六',wage : 1500}
];

var data4 = ['张三','李四','王五','赵六'];


//模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中
tpl1.append('tpl-1',data1);
tpl2.append('tpl-2',data2);
tpl3.append('tpl-3',data3);
tpl4.append('tpl-4',data4);
tpl5.append('tpl-5',data3);
});

});



<div id='tpl-1'></div>
<br>
<div id="tpl-2"></div>
<br>
<div id="tpl-3"></div>
<br>
<div id="tpl-4"></div>
<br>
<div id="tpl-5"></div>
<br>
<div id="target"></div>
<br>
产品名称:<input type="text" id="productName"><br>
产品数量:<input type="text" id="productNum"><br>
产品价格:<input type="text" id="productPrice">
<input type="button" value="增加产品" id='addProduct'>
<table id='product-table' border=1 cellspacing=0 cellpadding=0>
<tr>
<td width=160>产品名称</td><td width=75>数量</td><td width=75>金额</td>
</tr>
</table>

开源网格划分软件-Gmsh二次开发教程 (4)网格生成与控制​ ​本章将深入讲解Gmsh的网格生成技术,包括全局/局部网格控制、边界层生成、自适应细化等,并提供完整的代码示例。 阅读详情

相关推荐

华为OD机考双机位C卷 - 简单的解压缩算法 (Java & Python & JS & GO & C++ & C)

华为OD机考双机位C卷 - 简单的解压缩算法 , 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 101

Extjstpl结合form表单提交

这里简单介绍一下使用tpl做form表单提交的方法 1.      定义含有form标签的tpl模板: var tpl =Ext.create('Ext.XTemplate',     '',     '',      '',     '',    ''   2.      提交方式: var formData = Ext.Element.serializeForm(Ext.g

婵blog--分享与交流 1237

深入探索EXTJS事件处理与模板机制

EXTJS是一个构建富互联网应用的JavaScript框架,其事件处理机制是其核心特性之一。事件处理不仅限于按钮点击或是键盘输入,而是延伸到更为复杂的用户交互和数据管理。掌握EXTJS的事件处理机制能够帮助开发者高效地构建具有丰富交互功能的应用程序。观察者模式由两部分组成:主题(Subject)和观察者(Observer)。主题维护观察者列表,当主题状态发生变化时,它将通知所有已注册的观察者对象。观察者则对主题状态感兴趣,一旦主题发生变化,观察者即可作出响应。

weixin_31597759的博客 969

ExtJS4学习笔记八--Template的使用

1、append方法  Javascript代码   var tpl = new Ext.Template(//定义模板       '',       '姓名{0}',       '年龄{1}',       '性别{2}',       ''   )   //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中   tpl

逸雨涵梦的专栏 7889

Extjs常用控件的属性配置

Ext.form.TimeField: 配置项: maxValue:列表中允许的最大时间 maxText:当时间大于最大值时的错误提示信息 minValue:列表中允许的最小时间 minText:当时间小于最小值时的错误提示信息 increment:两个相邻选项间的时间间隔,默认为15分钟 format:显示格式,默认为“g:i A”。一般使用“H:i:s” H:带前缀0的24小时 i:带前缀0的分钟 s:带前缀0的秒 invalidText:当时间值非法时显示的提示信息 altFormats:多个时间输入

ヾ凉秋的博客 1245

extjs2 模板入门

本文来自官方的教程中文翻译。http://extjs.com/learn/Tutorial:Getting_Started_with_Templates_(Chinese) 首先建议读者先下载本例的代码,以配合文本的说明。有效的例子在这里。 第一步 您的HTML模板第一个步骤没有任何特别,这里的HTML可以说是用来格式化你的数据。花括号里面的关键字就是你数据中的{id},{url

mustar的专栏 616

extjs创建html模板,sencha cmd创建extjs admin-dashboard模板前端项目

1.下载extjs右键打开index.html,或者放到tomcat中去访问,打开后直接看到的是extjs的案例文档。位置1标的就是今天的主角,位置2就是全部的案例,这就是ext超级强大的地方,代码不会写,大量的案例再这里直接复制。直接打开admin dashboard案例。简直太惊艳了,太喜欢了,和普通的extjs界面不一样,这个太漂亮了,这就是我想要的界面,用手机访问一下,还支持自适应。3.下...

weixin_31954813的博客 506

extjs模板分析

自从第一眼看到效果绚丽的ext-grid,我便相信了神力的存在。于是接下来的一段时间我在公司广为布道,说服同事们在新的项目中引进extjs框架。还未开化的人们于是诘难我:“既然ext无所不能,那么它能否让grid像excel一样仅用鼠标拖拉就能给出某个区域的信息?”“显然不能,显然不能。”旁观者嚷嚷。“那么合并单元格并作为一个表单保存呢?就像一个excel模板。”“开什么玩笑,当然不可

tuoxieyz的专栏 2124

[ExtJS] Tpl模板中的extjs控件无法失焦处理

tpl模板里放extjs控件后,会发现input类的失焦事件失效了,尤其是在dataview中。 主要原因: dataview本身就有聚焦属性,所以点击在dataview的body部分,也会默认为聚焦 处理方法: 对于添加到tpl中的 extjs input类控件,在其widget时自己处理失焦事件 主要是通过判断鼠标点击位置是否在input控件里,来判断是失焦还是聚焦 l...

拒绝成猿的程序员 853

extjs模板使用:Ext.XTemplate

Ext.onReady(function(){ Ext.onReady(function(){ //定义模板 使用标签tpl和操作符for var tpl1 = new Ext.XTemplate( '<table border=1 cellpadding=0 cellspacing = 0>', ...

ama7449的博客 224

extjs 模板的自定义格式化

http://extjs.com/learn/Tutorial:Utilizing_Format_Features_of_Templates_(Chinese)假设我们打算从一变量中,打印出内容,但当中的内容有可能会占用过多的空间。对于这种情况,通过的办法是对该内容截取,限制在50个英文字符内,然后做成连接让用户点击后观察全文。函数"ellipsis"的功能正是这样,可限制在任

boy00fly的专栏 2408

ExtJS 使用Sencha CMD创建模板工程

ExtJS 使用CMD创建模板工程 背景:Sencha官网的admin_dashboard真的是非常好看,想要自己做一套耗时耗力;但是CMD工具提供了使用模板创建项目的功能; 给出步骤: Sencha Cmd 版本 7.2.0.56 1) 下载CMD,如果链接失效,那么自己去试用一下ExtJs,或者自己去找,去下载;下载完后安装,一路Next直到完成; 2) CMD默认会安装Sencha...

sword_happy的博客 664

一套仿WINDOWS桌面的EXTJS模板

一套仿WINDOWS桌面的EXTJS模板 源代码下载地址:http://www.zuidaima.com/share/1636544184847360.htm

springmvc_freemarker的博客 1150

Extjs模板使用(XTemplate 和 Template)

[b]转载: [url]http://dengm1010.iteye.com/blog/376555[/url][/b] [code="js"]Ext.onReady(function(){ Ext.onReady(function(){ //定义模板 使用标签tpl和操作符for var tpl1 = new Ext.XTemplate( '', '姓名年龄...

174

使用extjs6官方模板admin-dashboard

使用extjs6官方模板admin-dashboard 1、生成项目: sencha generate app -s templates/admin-dashboard/ Dashboard ../my-folder 2、修改app.json的output路径,如果不修改,项目发布之后会有些资源路径找不到 "output": {          /*"base": "${ext.d

778

微信图片dat文件解密工具

本工具为网页版,体积小,解压后直接打开html文件,将要解密的文件批量拖拽到页面即可迅速解码。源码可辅助学习交流。

上一篇: DIV的内容自动换行
下一篇: sencha touch 监听页面的几种方式
仰望星空HK
博客等级 码龄16年 196粉丝 58原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值