ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[2] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[3] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[4] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[5] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[6] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[7] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[8] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[9] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[10] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
[11] ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
系列文章導航:
ASP.NET 2.0數據教程之四:使用ObjectDataSource展現數據
ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
ASP.NET 2.0數據教程之七:使用DropDownList過濾的主/從報表
ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
ASP.NET 2.0數據教程之十:使用 GridView 和DetailView實現的主/從報表
ASP.NET 2.0數據教程之十一:基于數據的自定義格式化
ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
導言
GridView是由一組字段(Field)組成的,它們都指定的了來自DataSource中的什么屬性需要用到自己的輸出呈現中。最簡單的字段類型是BoundField,它僅將數據簡單的顯示為文本。其他的字段類型使用交互HTML元素(alternate HTML elements)來顯示數據。比如說,CheckBoxField將被呈現為一個CheckBox,其選中狀態由某特定數據字段的值來決定;ImageField則將某特定數據字段呈現為一個圖片,當然,這個數據字段中應該放的是圖片類型的數據。超級鏈接和按鈕的狀態取決于使用HyperLinkField或ButtonField字段類型的數據字段的值。
雖然CheckBoxField、ImageField、HyperLinkField和ButtonField考慮到了數據的交互視圖,但它們仍然有一些相關的格式化的限制。CheckBoxField只可以顯示為一個單個的CheckBox,而一個ImageField則只可以顯示為一張圖片。如果某個字段要顯示一些文本、復選框、圖片還有一些其他基于不同數據的東西的時候,我們要做什么?或者說,如果我們需要使用除了CheckBox、Image、HyperLink以及Button之外的Web控件來顯示數據時,我們該怎么辦?此外,BoundField只能顯示一個單獨的數據字段。如果我們想要在一個GridView列中顯示兩個或者更多的數據字段的值的時候該怎么辦呢?
為了適應這樣的一個復雜的情況,GridView提供了使用模板來進行呈現的TemplateField。模板可以包括靜態的HTML、Web控件以及數據綁定的代碼。此外,TemplateField還擁有各種可以用于不同情況的頁面呈現的模板。比如說,ItemTemplate是默認的用于呈現每行中的單元格的,而EditItemTemplate則用于編輯數據時的自定義界面。
在本節教程中,我們將解釋如何使用TemplateField來更加高級的自定義GridView控件。在上一節教程中,我們看到了如何使用DataBound和RowDataBound事件處理方法來自定義基于數據的格式化。另一個辦法就是在模板中調用一個格式化方法。在本節中,我們就會看到這種技術。
在本節中,我們將使用一些TemplateField來自定義雇員信息的呈現。特別的,我們將列出所有的雇員,但我們將會把雇員的姓和名字放在一列中,把他們的雇傭日期放在一個Calendar控件中,還將用一個狀態列來表明他們來到公司有多久了。
圖一:使用三個TemplateField來自定義信息的顯示方式