版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
北風(fēng)網(wǎng)項目培訓(xùn)基礎(chǔ)篇(4):ExtJs中的模板詳解講師:風(fēng)舞煙ExtJs版國訊教育通用智能OA辦公平臺目錄Ext.DomHelper簡介Template語法使用簡介Template簡單應(yīng)用Template中使用轉(zhuǎn)換函數(shù)使用模板的自定義接口XTemplate應(yīng)用復(fù)雜模板綜合應(yīng)用Ext.DomHelper處理DOM或模板(Templates)的實用類。能以JavaScript較清晰地編寫HTML片段(HTMLfragments)或DOM。如以下范例產(chǎn)生五個子元素的無須列表,追加到當(dāng)前元素‘my-div’:常用方法Template語法使用簡介在一些復(fù)雜的情況下,我們需要生成HTML片斷,這時最常用,最簡單,最有效率的一種做法就是應(yīng)用Ext提供的模板來完成。說明:Templete
是模板之意,就是定義一段HTML代碼,并放置若干個{}作為占位符,運行
時將數(shù)據(jù)填充到{}中去??磥砜慈ィ蚸ava中的MessageFormat及C#中的string.formate很像。XTemplate和DomHelper有很深的淵源,DomHelper是XTemplate的小弟,DomHelper解決不了的事情,XTemplate一定可以。
使用XTemplate一般會經(jīng)歷三個步驟:
1、定義XTemplate對象,指定一段HTML代碼作為模板;
2、指定XTemplate中定義的HTML應(yīng)該放置的位置,并填充占位符信息;
3、編譯XTemplate。Template簡單應(yīng)用Ext.onReady(function(){
var
xt=newExt.Template(
"<tableborder={0}width={1}>",
"<tr>",
"<td>{2}</td>",
"<td>{3}</td>",
"<td>{4}</td>",
"</tr>",
"</table>"
);
xt.append("xt",[1,300,'單元格1','單元格2','單元格3']);
pile();
})
頁面如下:
<divid="xt"></div>
實例化Template時,可以配置任意個參數(shù),會自動連接到一起,這種寫法似乎更方便
更好讀。append方法同DomHelper
的append方法,實際上還有insertBefore、insertAfter、
insertFirst、overwrite等方法,不同的是第二個參數(shù),該參數(shù)是要填充到占位符中的數(shù)據(jù),
可以是數(shù)組,也可以是json對象。執(zhí)行完之后得到如下結(jié)果:<divid="xt">
<tableborder="1"width="300">
<tbody>
<tr>
<td>單元格1</td>
<td>單元格2</td>
<td>單元格3</td>
</tr>
</tbody>
</table>
</div>下面是改造后的例子,填充數(shù)據(jù)時用json對象代替了原來的數(shù)組:
Ext.onReady(function(){
var
xt=newExt.Template(
"<tableborder=width={w}>",
"<tr>",
"<td>{v1}</td>",
"<td>{v2}</td>",
"<td>{v3}</td>",
"</tr>",
"</table>"
);
xt.append("xt",{b:1,w:300,v1:"單元格1",v2:"單元格2",v3:"單元格3"});
pile();
})Template中使用轉(zhuǎn)換函數(shù)eg:varxt=newExt.Template("<tableborder=width={w}>","<tr>","<td>{v1}</td>","<td>{v2:trim}</td>","<td>{v3:ellipsis(4)}</td>","</tr>","</table>");xt.append("xt",{b:1,w:300,v1:'單元格1',v2:'單元格2',v3:'單元格3'});pile();目錄Ext.DomHelper簡介Template語法使用簡介Template簡單應(yīng)用Template中使用轉(zhuǎn)換函數(shù)使用模板的自定義接口XTemplate復(fù)雜模板綜合應(yīng)用JavaScript代碼
vardata=[['1','male','name1','descn1'],['2','female','name2','descn2'],['3','male','name3','descn3'],['4','female','name4','descn4'],['5','male','name5','descn5']];
vart=newExt.Template('<tr>','<td>{0}</td>','<td>{1:this.renderSex}</td>','<td>{2:trim}</td>','<td>{3:ellipsis(10)}</td>','</tr>');
t.renderSex=function(value){if(value=='male'){return"<spanstyle='color:red;font-weight:bold;'>紅男</span><img
src='user_male.png'/>";}else{return"<spanstyle='color:green;font-weight:bold;'>綠女</span><img
src='user_female.png'/>";}};
pile();for(vari=0;i<data.length;i++){
t.append(Ext.get('some-element'),data[i]);}HTML代碼
<tableborder="1"><tbodyid="some-element"><tr><td>id</td><td>sex</td><td>name</td><td>descn</td></tr></tbody></table>目錄Ext.DomHelper簡介XTemplate語法使用簡介XTemplate簡單應(yīng)用XTemplate中使用轉(zhuǎn)換函數(shù)使用模板的自定義接口復(fù)雜模板綜合應(yīng)用XTemplate對Template的功能進(jìn)行了增強,XTemplate不僅支持在模板內(nèi)部使用子模板,還具有for和if的功能,可以讓我們在模板中實現(xiàn)循環(huán)和判斷等功能例4-3:1、界面HTML:<formid="f"></form>2、js:
vardata={name:'s',size:5,options:[{value:'河北',text:'河北省'},{value:'唐山',text:'唐山市'},{value:'路北',text:'路北區(qū)'}]};
vart=newExt.XTemplate('<selectname="{name}"size="{size}">','<tplfor="options"><optionvalue="{value:trim}">{text:ellipsis(10)}</option></tpl>','</select>');
t.append('f',data);例4-4:操作簡單數(shù)組Ext.onReady(function(){vardata={name:'s',size:5,options:['河北省','唐山市','路北區(qū)']};vart=newExt.XTemplate('<selectname="{name}"size="{size}">','<tplfor="options"><optionvalue="{.:trim}">{.:ellipsis(10)}</option></tpl>','</select>');t.append('f',data);});例4-5:
Ext.onReady(function(){vardata={name:"博客園",read:[{book:'<<ASP.net高級編程>>',date:'2007-7-7'},{book:"<<大話設(shè)計模式>>",date:"2006-6-6"}]}
//呈現(xiàn)組件
varmypanel=newExt.Panel({width:400,id:"mypanel",title:"XtemplateData簡單示例",renderTo:Ext.getBody()});//創(chuàng)建模板
vartpl=newExt.XTemplate('<table><tr><th>名稱:{name}</th></tr>',////對于一維單數(shù)據(jù)對象,直接用{名稱}輸出,'<tr><td>','<tplfor="read">',///對于多維對象(如擁有多條數(shù)據(jù)的表),'<p>編號:{#},書:{book},日期:{date}</p>','</tpl></td></tr></table>');//重寫綁定模板(//把數(shù)據(jù)填充到模板中去,并呈現(xiàn)到目標(biāo)組件)tpl.overwrite(mypanel.body,data);});簡要說明如下:1.pile();//可以在創(chuàng)建模板后,添加pile();編譯代碼,速度快點.
2.
tpl.overwrite(mypanel.body,data);//把數(shù)據(jù)填充到模板中去,并呈現(xiàn)到目標(biāo)組件
3.名稱:{name}//對于一維單數(shù)據(jù)對象,直接用{名稱}輸出,
4.,<tpl
for="read">//對于多維對象(如擁有多條數(shù)據(jù)的表),使用tpl和for配合使用,會使用tpl的格式把數(shù)據(jù)一條一條輸出,read為上級節(jié)點
5.{.}//對于一維對數(shù)據(jù)的對象,如color:
['Red',
'Blue',
'Black'],可以用{.}按照tpl模板逐一輸出,如:
'<tpl
for="color">',
'<div>
{.}</div>',
'</tpl>'
6.{#}//表示循環(huán)的索引
7.parent.***//在子對象中訪問父對象元素,使用parent,如:{}
8.if//'<tpl
if="age
>
1">',
'<p>{name}</p>',
'</tpl>',
//if實現(xiàn)有條件的邏輯判斷,很容易使用
9.其他幾個常用的參數(shù):
xindex//循環(huán)模板的當(dāng)前索引index(從1開始),用[]。
xcount//循環(huán)模板循環(huán)的次數(shù)。
用[]
舉例:
'<tpl
for="read">',
'<p>編號:{#},書:{book},日期:{date},奇偶:{[xindex%2==0?"偶數(shù)":"奇數(shù)"]},次數(shù):{[xcount]}</p>',
'</tpl>'10.模板成員函數(shù):
var
tpl
=
new
Ext.XTemplate(
'<tpl
for="kids">',
'<tpl
if="this.isGirl(name)">',
'<p>Girl:
{name}
-
{age}</p>',
'</tpl>',
'<tpl
if="this.isGirl(name)
==
false">',
'<p>Boy:
{name}
-
{age}</p>',
'</tpl>',
'</tpl></p>',
{
isGirl:
function(name){
return
name
==
'Sara
Grace';
},
isBaby:
function(age){
return
age
<
1;
}
});目錄Ext.DomHelper簡介XTemplate語法使用簡介XTemplate簡單應(yīng)用XTemplate中使用轉(zhuǎn)換函數(shù)使用模板的自定義接口復(fù)雜模板綜合應(yīng)用實例演示:用模板呈現(xiàn)服務(wù)器數(shù)據(jù)
Ext.onReady(function(){
var
mydata;
Ext.Ajax.request({
url:"getXtemplateData.ashx",//服務(wù)器端地址
success:function(request){
mydata=r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河南平頂山舞鋼一高高一物理第一學(xué)期期中達(dá)標(biāo)檢測試題含解析
- 2025屆江蘇省靖江市劉國鈞中學(xué)高三上物理期中復(fù)習(xí)檢測模擬試題含解析
- 2025屆天津市河?xùn)|區(qū)物理高二第一學(xué)期期中統(tǒng)考模擬試題含解析
- 山東省兗州一中2025屆物理高二上期中教學(xué)質(zhì)量檢測模擬試題含解析
- 2025屆天津市靜海縣第一中學(xué)物理高二第一學(xué)期期中檢測模擬試題含解析
- 上海市張堰中學(xué)2025屆物理高二第一學(xué)期期中預(yù)測試題含解析
- 2025屆山西省臨汾一中高三上物理期中經(jīng)典試題含解析
- 山東省日照市(2024年-2025年小學(xué)五年級語文)統(tǒng)編版小升初模擬(下學(xué)期)試卷及答案
- 黑龍江佳木斯市(2024年-2025年小學(xué)五年級語文)統(tǒng)編版期中考試(上學(xué)期)試卷及答案
- 姜書艷數(shù)字邏輯設(shè)計及應(yīng)用課件
- 缺乳(乳汁淤積)產(chǎn)婦的中醫(yī)護(hù)理
- 機械工程導(dǎo)論-基于智能制造(第2版) 第四章 機械制造工藝技術(shù)
- 2024北師大版新教材初中數(shù)學(xué)七年級上冊內(nèi)容解讀課件(深度)
- 2024年公共營養(yǎng)師三級考試試卷及答案
- 2024年上半年軟考信息系統(tǒng)項目管理師真題
- 北京市西城區(qū)2023-2024學(xué)年高一下學(xué)期期末英語試題(解析版)
- 《乘法分配律》 (教案)2023-2024學(xué)年數(shù)學(xué) 四年級上冊 北師大版
- 三位數(shù)乘兩位數(shù)乘法豎式計算練習(xí)100道及答案
- 【金融模擬交易實踐報告書3700字(論文)】
- 人教版美術(shù)六年級上冊《第3課 遠(yuǎn)去的路》說課稿6
- iso220002024食品安全管理體系
評論
0/150
提交評論