转载: 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 > 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);
});
});
html代码
<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>
分享到:
相关推荐
在实际开发中,熟练掌握 `Ext.XTemplate` 的使用能够提高页面的交互性和数据展示效率,使得前端界面更加灵活和智能化。通过合理的模板设计,开发者可以轻松地将后端提供的数据转化为用户友好的界面元素,从而提升...
一、ExtJS模板简介 在ExtJS中,模板是一种便捷的方式,用于动态生成HTML内容。它们通常与数据对象结合使用,通过数据绑定将数据转换为可渲染的HTML。模板使用特殊的语法,允许在字符串中嵌入变量和表达式,使得数据...
在本文中,我们将深入探讨如何使用ExtJS的XTemplate来实现多张图片的居中排版和自动缩放处理。ExtJS是一个强大的JavaScript框架,它提供了丰富的组件和模板功能,帮助开发者构建用户界面。XTemplate是ExtJS中的一个...
EXTJS提供了两种主要的模板类型:String Template和XTemplate。String Template是基于字符串的模板,使用简单的替换语法,如`{name}`表示占位符;而XTemplate则更加强大,支持复杂的条件判断、循环、函数调用等。...
在ExtJS中,你可以使用HTML模板(Template)和数据绑定(Data Binding)来动态生成标签页的内容。例如,你可以创建一个Ext.XTemplate模板,并使用`loadRecord`方法加载数据模型到Panel中: ```javascript var ...
Ext.Template和Ext.XTemplate是用于处理模板的类,能够实现内容的动态插入和渲染。通过模板可以快速定义数据的展示方式,提高开发效率。 ExtJS中的Event、Component和Container是构建复杂用户界面的基础。Component...
JSON Format用于处理JSON数据,DelayedTask和TaskRunner用于定时任务,TextMetrics用于计算文本的尺寸,XTemplate则是一种强大的模板引擎,方便数据和视图的绑定。 总的来说,这个资源涵盖了ExtJS的大部分基础API,...
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
ExtJs提供了丰富的组件体系,许多类支持使用模板(Template)来生成HTML内容。例如,`Ext.XTemplate`可以用于动态生成复杂的视图。 8. **扩展性与模块化** ExtJs的类设计考虑了扩展性和模块化,通过组合多个小...
默认情况下,ComboBox仅显示文本选项,但通过自定义模板和渲染函数,我们可以添加图片元素,使其更生动、更具表现力。 1. **创建数据源**: 在创建带图片的下拉框之前,我们需要一个数据源,通常是一个Store对象,...
它使用Ext.XTemplate或Ext.Template进行模板渲染,并使用Scroller或paging toolbar来支持滚动和分页功能。 5. **GridPanel的高级特性**:除了基本功能外,GridPanel还提供了许多高级特性,如拖放排序、行编辑、分组...
`Ext.XTemplate` 类似于 `Ext.Template`,但它更加强大和灵活,支持更复杂的逻辑和数据处理。例如,它可以用于遍历数组或对象,并根据条件生成不同的 HTML 内容。 #### 三、Event、Component and Container **3.1 ...
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
### ExtJs2.0入门实例知识点详解 #### 1. Ext.MessageBox ...以上是ExtJs2.0中的一些基础控件和方法的详细介绍,通过这些内容可以帮助初学者快速入门,并掌握如何使用这些控件进行Web应用程序开发。
EXTJS是一个强大的JavaScript框架,用于构建富客户端应用程序。其API详解涵盖了众多核心...EXTJS的API详尽且强大,这些只是其中一部分,实际使用中还有许多其他类和方法,为开发者提供了构建复杂Web应用的全面工具集。
3. **视图和视图模型**:了解如何使用ViewModel来连接视图和数据,以及如何使用模板(Template)和XTemplate来渲染复杂的数据结构。 4. **图表和图形**:掌握Ext JS的图表组件,如柱状图、折线图、饼图等,以及如何...
Icon Combobox的实现主要通过ExtJS的组件模型,利用Combobox的基础结构,并在模板(template)中添加图标元素。开发者可以定义一个包含图标和文本的模板,然后在创建Combobox实例时,设置相应的配置项,如图标URL、...
EXTJS是一个流行的JavaScript UI框架,提供了丰富的组件和功能,使得开发者能够构建功能强大的企业级应用。 "RowExpander"组件是EXTJS中的一种扩展,它允许用户在表格的每一行旁边添加一个可折叠的图标。当用户点击...