亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

ASP.NET中實現模版的動態加載

2024-07-10 13:13:02
字體:
來源:轉載
供稿:網友

asp.net中,經常會使用到templates(模版)功能,比如在datagrid,datalist,repeater等控件中,使用templates,將會大大增強其功能。以往,我們一般是在設計程序時,就已經設置好控件中的模版是怎樣的了。但是,有的時候,可能我們需要動態加載模版,比如,當你要求你的應用程序的界面風格隨著用戶的需求而變化時,你就需要到動態加載模版的功能了。但要注意的是,并不是所有的web控件都支持模版功能,而且要注意,哪些控件支持模版的哪些功能,下面簡單列出了一些支持模版功能的控件:

repeater控件,支持的模版有:

headertemplate,%20footertemplate,%20itemtemplate,%20alternatingitemtemplate,%20seperatortemplate.

datelist控件,支持的模版有:

headertemplate,%20footertemplate,%20itemtemplate,%20alternatingitemtemplate,%20separatortemplate,%20selecteditemtemplate,%20edititemtemplate.

datagrid控件,支持的模版有:

headertemplate,%20footertemplate,%20itemtemplate,%20edititemtemplate,%20pager.

下面,我將以動態加載datalist控件的模版來說明如何動態加載模版:

首先來了解動態加載模版的原理。在.net中,有templatecontrol類,這個類是page和usercontrol類的基類。它也同時定義了page和usercontrol類的基本功能。該類提供了兩個方法:loadcontrol和loadtemplate。loadcontrol方法裝載來自外部文件的控件,并且返回usercontrol類對象。而loadtemplate方法加載來自外部文件的模版并且返回的是itemplate對象。

loadtemplate方法中,只有一個參數,參數值是外部模版文件的路徑,并且返回itemplate對象。而datalist控件提供了一系列的屬性,可以設置各種模版的屬性,包括有alternatingitemtemplate,%20edititemtemplate,%20footertemplate,%20headertemplate,%20itemtemplate,%20selecteditemtemplate,%20和%20seperatortemplate,在下文中,將會看到相關介紹。

接著,我們開始介紹例子,在示例程序中,是使用動態創建數據表和數據列的,并且將數據的創建封裝到一個db類中,好讓讀者進一步回顧如何動態創建數據表,數據列等,并沒用從數據庫中提?。ó斎?,你也可以用傳統的讀取數據庫的方法),

以下為引用的內容:
public%20class%20db{public%20db(){%20}///%20<summary>///%20method%20returns%20a%20dataset%20object%20filled%20with%20data///%20</summary>public%20static%20dataset%20getdataset(){//創建dataset和datatabledataset%20ds%20=%20new%20dataset();datatable%20table%20=%20new%20datatable("records");datacolumn%20col;//增加一個列col%20=%20new%20datacolumn();col.datatype%20=%20system.type.gettype("system.int32");col.columnname%20=%20"id";col.readonly%20=%20true;col.unique%20=%20true;table.columns.add(col);col%20=%20new%20datacolumn();col.datatype%20=%20system.type.gettype("system.string");col.columnname%20=%20"name";col.autoincrement%20=%20false;col.caption%20=%20"name";col.readonly%20=%20false;col.unique%20=%20false;table.columns.add(col);col%20=%20new%20datacolumn();col.datatype%20=%20system.type.gettype("system.string");col.columnname%20=%20"address";col.autoincrement%20=%20false;col.caption%20=%20"address";col.readonly%20=%20false;col.unique%20=%20false;table.columns.add(col);//增加一條記錄datarow%20row%20=%20table.newrow();row["id"]%20=%201001;row["name"]%20=%20"melanie%20giard";row["address"]%20=%20"23rd%20street,%20park%20road,%20ny%20city,%20ny";table.rows.add(row);row%20=%20table.newrow();row["id"]%20=%201002;row["name"]%20=%20"puneet%20nehra";row["address"]%20=%20"3rd%20blvd,%20ashok%20vihar,%20new%20delhi";table.rows.add(row);row%20=%20table.newrow();row["id"]%20=%201003;row["name"]%20=%20"raj%20mehta";row["address"]%20=%20"nagrath%20chowk,%20jabalpur";table.rows.add(row);row%20=%20table.newrow();row["id"]%20=%201004;row["name"]%20=%20"max%20muller";row["address"]%20=%20"25%20north%20street,%20hernigton,%20russia";table.rows.add(row);//%20add%20datatable%20to%20datasetds.tables.add(table);//%20return%20datasetreturn%20ds;}}%20

接下來,我們首先創建若干個模版文件。我們先創建兩組模版文件,每一組模版文件分別包含有header,footer,item,alternating%20item四個模版文件,保存成.ascx文件,這樣,我們就有兩類型風格的模版了,每類型風格的模版中都有自己的header,footer,item,alternating%20item子模版。下面為其中一個item模版文件,其他的類似。

以下為引用的內容:
<%@%20control%20language="vb"%20%><font%20face="verdana"%20color="green"%20size="2"><b>id:%20</b><%#%20databinder.eval(ctype(container,%20datalistitem).dataitem,%20"id")%20%><b>name:%20</b><%#%20databinder.eval(ctype(container,%20datalistitem).dataitem,%20"name")%20%><br><b>address:%20</b><%#%20databinder.eval(ctype(container,%20datalistitem).dataitem,%20"address")%20%><p></font>%20

最后,我們開始創建應用程序,新建一個工程,添加兩個按鈕和一個datalist控件如下圖:

之后創建一個binddatagrid的方法,將dataset綁定到datalist控件中去,代碼如下:

以下為引用的內容:
private void binddatagrid(){dtset = db.getdataset();datalist1.datasource = dtset.tables[0].defaultview;datalist1.databind();}private void page_load(object sender, system.eventargs e){if(!ispostback){binddatagrid();}} 

最后,分別為兩個按鈕的clcik事件添加代碼,分別使用page.loadtemplate方法去加載我們已經寫好的兩套模版組中的模版,代碼如下:

以下為引用的內容:
 private void button1_click(object sender, system.eventargs e){// load templatesdatalist1.alternatingitemtemplate =page.loadtemplate("altitemtempate.ascx");datalist1.itemtemplate =page.loadtemplate("itemtemplate.ascx");datalist1.headertemplate =page.loadtemplate("headtemplate.ascx");datalist1.footertemplate = page.loadtemplate("foottemplate.ascx");binddatagrid();}private void button2_click(object sender, system.eventargs e){// load templatesdatalist1.alternatingitemtemplate =page.loadtemplate("altitemtempate2.ascx");datalist1.itemtemplate = page.loadtemplate("itemtemplate2.ascx");datalist1.headertemplate = page.loadtemplate("headtemplate2.ascx");datalist1.footertemplate = page.loadtemplate("foottemplate2.ascx");binddatagrid();} 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美孕妇孕交黑巨大网站| 亚洲人成网站在线播| 精品福利视频导航| 精品久久久国产精品999| 国产精品网站入口| 日韩美女视频免费在线观看| 精品久久久视频| 亚洲美女在线观看| 国产精品高潮呻吟视频| 欧美性做爰毛片| 日韩人体视频一二区| 欧美老肥婆性猛交视频| 国产成人+综合亚洲+天堂| 午夜精品三级视频福利| 欧美激情一区二区三区高清视频| 久久色免费在线视频| 国产男女猛烈无遮挡91| 91精品国产91久久| 亚洲国产精品va在线看黑人| 欧美视频裸体精品| 日韩精品有码在线观看| 欧美大片免费观看在线观看网站推荐| 亚洲精品av在线播放| 97视频在线观看亚洲| 亚洲伦理中文字幕| 亚洲精品女av网站| 国产精品白嫩美女在线观看| 日本国产欧美一区二区三区| 午夜精品美女自拍福到在线| 成人精品福利视频| 国产丝袜一区视频在线观看| 欧美香蕉大胸在线视频观看| 国产视频久久网| 国产精品女人久久久久久| 欧美日韩裸体免费视频| 亚洲综合视频1区| 亚洲全黄一级网站| 久久亚洲精品视频| 亚洲免费视频在线观看| 久久久久国产一区二区三区| 亚洲国产成人精品一区二区| 日本sm极度另类视频| 国产玖玖精品视频| 国产一区二区三区中文| 91亚洲国产成人精品性色| 日韩av电影手机在线观看| 亚洲第一视频网站| 91亚洲国产成人久久精品网站| 有码中文亚洲精品| 精品av在线播放| 亚洲国产精品悠悠久久琪琪| 日韩在线观看视频免费| 欧美疯狂性受xxxxx另类| 深夜福利91大全| 97国产精品视频人人做人人爱| 欧美另类第一页| 久久五月天综合| 麻豆国产精品va在线观看不卡| 色999日韩欧美国产| 91精品国产高清久久久久久| 不卡毛片在线看| 亚洲人成在线观| 国产一区二区三区在线播放免费观看| 欧美成人国产va精品日本一级| 欧美成人中文字幕| 狠狠躁夜夜躁久久躁别揉| 欧美性极品xxxx做受| 久久免费在线观看| 亚洲免费视频在线观看| 国产999在线| 色偷偷av一区二区三区乱| 91久久久久久国产精品| 欧美床上激情在线观看| 国产精品免费久久久久久| 欧美专区在线视频| 欧美尺度大的性做爰视频| 日韩中文字幕网站| www.精品av.com| 91视频免费在线| 午夜欧美大片免费观看| 国产精品一久久香蕉国产线看观看| 亚洲男人天堂久| 2018国产精品视频| 精品国内亚洲在观看18黄| 奇门遁甲1982国语版免费观看高清| 成人黄色av网| 精品欧美激情精品一区| 午夜免费日韩视频| 国产视频丨精品|在线观看| 久久人人爽人人| 欧美精品久久久久久久免费观看| 在线精品视频视频中文字幕| 欧美视频二区36p| 久久香蕉国产线看观看av| 国产精品国产福利国产秒拍| 久久五月情影视| 98精品国产高清在线xxxx天堂| 日韩一区av在线| 国产自摸综合网| 精品中文字幕视频| 日韩高清电影免费观看完整版| 欧美wwwxxxx| 人九九综合九九宗合| 欧美精品video| 亚洲精选一区二区| 91精品久久久久久久久不口人| 亚洲欧美日韩精品久久| 亚洲精品动漫100p| 日韩av在线播放资源| 在线观看成人黄色| 国产精品欧美激情在线播放| 国产精品一区二区av影院萌芽| 欧美日韩美女视频| 69久久夜色精品国产69| 国产日本欧美一区二区三区在线| 日韩视频欧美视频| 国产91在线播放| 成人免费淫片aa视频免费| 亚洲成在人线av| 亚洲a一级视频| 欧美在线视频一区| 成人欧美一区二区三区黑人| 久久久久久久久国产精品| 日韩一二三在线视频播| 亚洲欧美中文另类| 午夜免费在线观看精品视频| 国产激情综合五月久久| 欧美黑人性视频| 96精品视频在线| 国产一区二区三区免费视频| 欧美激情一二三| 国产精品久久久久久婷婷天堂| 久久中文字幕在线| 日韩av三级在线观看| 亚洲国产黄色片| 国产精品69av| 26uuu另类亚洲欧美日本一| 国产精品久久久久国产a级| 日韩电影免费观看在线观看| 亚洲va欧美va在线观看| 国产久一一精品| 欧美影院成年免费版| 欧美交受高潮1| 亚洲一区二区三区xxx视频| 亚洲精品视频在线观看视频| 久热爱精品视频线路一| 国产精品久久久久久久久久小说| 国产精品99久久久久久白浆小说| 国产在线视频欧美| 日韩在线一区二区三区免费视频| 国产在线播放不卡| 国产经典一区二区| 国产一区二区三区直播精品电影| 91九色国产社区在线观看| 在线视频免费一区二区| 热久久这里只有精品| 91av在线播放| 欧美激情手机在线视频| 欧美黄色片免费观看| 欧洲成人午夜免费大片| 亚洲在线www| 亚洲国产精品免费| 成人黄色免费网站在线观看| 日韩精品中文字幕在线|