日期:2014-05-16 浏览次数:20360 次
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},