Ext.Template 及 Ext.XTemplate怎么用呀?

问题描述

我想用模板循环以表格的形式把数据显示到form中。怎么做呀?下面是我找的一点代码: 急呀!高手出来指教一下! 下面的代码为什么显示不出来呢? --ExtJS代码:------------------------ 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>'          );   //定义组合框模板  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 data1 = [              {name:'张三',age:20},              {name:'李四',age:25},              {name:'王五',age:27},              {name:'赵六',age:26}          ];    //模板值和模板进行组合并将新生成的节点插入到id为'tpl-table'的元素中      tpl1.append('tpl-1',data1);  });  --html代码:------------------------ <div id='tpl-1'>1</div>   <br>      <div id="target">tgt</div>    问题补充:-<strong>-extjs</strong>----------------<br />createFlowConsole : function() {<br />var data = [{id:'entityId', type: 'float'},{name:'Name', type:'string'}];<br /><br />var store = new Ext.data.JsonStore({<br />url: _ctx.base + '/osworkeflow/getAvailableActions.action',<br />fields: data<br />});<br />store.load();<br /><br />var xtpl = new Ext.XTemplate(<br />'&lt;tpl for="."&gt;',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;div class="thumb-wrap" id="{name}"&gt;',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;span class="x-editable"&gt;{id}&lt;/span&gt;',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;span class="x-editable"&gt;{Name}&lt;/span&gt;&lt;/div&gt;',<br />&nbsp;&nbsp;&nbsp; '&lt;/tpl&gt;'<br />);<br /><br />var availableActionsPanel = new Ext.Panel( {<br />id : 'mySteps_panel',<br />region : 'north',<br />title : '我的步骤',<br />margins : '0 0 5 0',<br />height : 150,<br />items: new Ext.DataView({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; store: store,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tpl: xtpl,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoHeight:true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multiSelect: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overClass:'x-view-over',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; itemSelector:'div.thumb-wrap',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emptyText: 'No data to display'<br />&nbsp;&nbsp;&nbsp; })<br />});<br /><br />var steps = this.createSetpsGrid();<br /><br />var flowConsole = new Ext.Panel( {<br />region : 'center',<br />layout : "border",<br />border : false,<br />items : [ availableActionsPanel, steps ],<br />margins : '5 5 5 0'<br />});<br />return flowConsole;<br />},<br /><br /><strong>从后台读取数据,数据显示不出来?</strong>

解决方案

store.load(); 需要放在Ext.DataView 后面
解决方案二:
var xtpl = new Ext.XTemplate( '<tpl for=".">', '<div class="thumb-wrap" id="{Name}">', '<span class="x-editable">{id}</span>', '<span class="x-editable">{Name}</span></div>', '</tpl>' );var data = [{id : 'id',name : 'id',type : 'float'}, {name : 'Name',type : 'string'}];后台是否返回了[{Name:'aaaaaaaaaaaaa',id:'1'},{Name:'aaaaaaaaaab',id:'2'}]格式数据
解决方案三:
放在form里面不是使用 tpl1.append('tpl-1',data1); 这样表示渲染在 tpl-1 div里面放在form 里面可以结合 Ext.DataView 使用new Ext.DataView({tpl : tpl1,autoHeight : true,multiSelect : true,itemSelector : 'table td',emptyText : '没有数据显示',store : new Ext.data.JsonStore({fields : ['name', 'age'],data : [{name : '张三',age : 20}, {name : '李四',age : 25}, {name : '王五',age : 27}, {name : '赵六',age : 26}]})})

时间: 2024-10-02 09:48:33

Ext.Template 及 Ext.XTemplate怎么用呀?的相关文章

ExtJs之Ext.Template

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <!DOCTYPE html> <html> <head>     <title>ExtJs</title>         <meta http-equiv="Content-Type" content="text/html; charset=utf

ext.net c#-Ext.Net1.7 后台操作页面超时 并 实现进度条的问题

问题描述 Ext.Net1.7 后台操作页面超时 并 实现进度条的问题 需要达到如图样式 protected void Page_Load(object sender EventArgs e) { } private static string TableName; //要修改的表名 [DirectMethod(Timeout = 900000)] protected void btnOK_DirectClick(object sender Ext.Net.DirectEventArgs e)

Ext等待动画Ext.MessageBox.wait的使用

  <script type="text/javascript">     Ext.onReady(function () {         Ext.MessageBox.wait("正在学习浩然哥哥的博客", "进度条");     }); </script>   语法很简单,但是你肯定会疑问,进度条走到最后,又开始从头走.而且,按理说,进度条总得跟某个进度挂钩啊.这没事它自己走什么呢,连我都不知道程序在走什么进度.

ext ajax 全局变量-ext的ajax async:false 同步不起作用,导致回调函数的值无法赋值给全局变量

问题描述 ext的ajax async:false 同步不起作用,导致回调函数的值无法赋值给全局变量 function queryValue(id,arg){ var flag=true; var dataId = id; var operationType = "doMaxMinValue"; var testId = document.getElementById("testId").value; //查询即时更新过的最大值,最小值 var minValue=0

ext window-求助Ext window二次打开问题

问题描述 求助Ext window二次打开问题 在grid列表通过Ext.create('App.good.GoodRecommend').show()打开window,第一次都是正常的,第二次打开就会是这样的效果 然后选中的值和填的排序号也无法获取到,请大神帮忙一下 Ext.define('App.good.GoodRecommend', { extend: 'Ext.window.Window', title: '商品推荐位置', width: 300, height:200, modal:

viewport,Ext.panel和Ext.form.panel的关系

//一个普通的表单 var frm = new Ext.form.FormPanel({ defaultType: 'textfield', labelAlign: 'right', title: 'form1-center', labelWidth: 50, frame: true, width: 120, height:200, region: 'center', closable: true, //这个属性就可以控制关闭该from items: [{ fieldLabel: '文本框' }

ext.net ...-请问ext.net中的treepanel如何设置节点的选中以及取消选中

问题描述 请问ext.net中的treepanel如何设置节点的选中以及取消选中 http://wenku.baidu.com/search?word=ext&lm=0&od=0 解决方案 EXT.NET循环并且选中TreePanel的某些值Ext TreePanel中选中指定的节点----------------------

Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式_jquery

前面写的get()和query()我都省略参数了,先看看文档中的函数原型: Ext.get( Mixed el ) : Element Parameters: el : Mixed The id of the node, a DOM Node or an existing Element. Returns: Element The Element object Ext.query( String path, [Node root] ) : Array Parameters: path : Str

关于viewport,Ext.panel和Ext.form.panel的关系_extjs

Ext.panel 可以存放很多元素,最常见的是Ext.form.formPanel对象,也可以用borderlayout布局 下面是我写的一个小例子,顶级容器不是viewport而是tabpanel 复制代码 代码如下: //一个普通的表单 var frm = new Ext.form.FormPanel({ defaultType: 'textfield', labelAlign: 'right', title: 'form1-center', labelWidth: 50, frame: