萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> java >> TemplateField講解.

TemplateField講解.

class="area">

GridView控件中的一個重要的列類型是TemplateField,它可以使用模板完全定制列的內容。

提示:

如本章前面所述,控件模板只是一個可以添加其他內容的容器,如文本、HTML控件甚或ASP.NET控件。

TemplateField提供了6個不同的模板,用於定制列的指定區域,或創建列中的單元格能進入的模式,如編輯模式。表7-6列出了這些模板。

表 7-6

模 板 名

說 明

ItemTemplate

用於顯示數據綁定控件的TemplateField中的一項

AlternatingItemTemplate

用於顯示TemplateField的替換項

EditItemTemplate

用於顯示編輯模式下的TemplateField項

InsertItemTemplate

用於顯示插入模式下的TemplateField項

HeaderTemplate

用於顯示TemplateField的標題部分

FooterTemplate

用於顯示TemplateField的腳標部分

要在GridView中使用TemplateField,只需用上一節介紹的Add Field對話框給柵格添加列類型。添加了字段後,就會在GridView中添加一個新的<asp: TemplateField>標記,如程序清單7-32所示。

程序清單7-32 GridView的TemplateField

 <asp: TemplateField></asp: TemplateField>

這個元素是該列包含的各種模板的容器。添加了該列後,就可以創建定制的內容了。為此,可以使用Visual Studio 2008設計界面的模板編輯功能,或在Source視圖中為TemplateField元素添加定制的內容。

在Visual Studio設計界面上訪問模板編輯功能有兩種方式。首先是右擊GridView,從彈出菜單的Edit Template選項中選擇Column[nn](其中nn是列索引)。使用這種方式時,在Visual Studio 2008設計界面上會顯示該列的所有模板,如圖7-22所示。

圖 7-22第二種方式是打開GridView控件的智能標記,選擇Edit Template命令。這會打開一個菜單,如圖7-23所示,從中可以選擇想要編輯的列模板。 (點擊查看大圖)圖 7-23

ItemTemplate是最常用的模板,它控制著列中每個單元格的默認內容。程序清單7-33演示了如何用ItemTemplate定制列的內容。

程序清單7-33 使用ItemTemplate

<asp:TemplateField HeaderText='CurrentStatus'>
<ItemTemplate>
<table>
<tr>
<td align='center' style='width: 78px'>
<asp:Button ID='Button2' runat='server' Text='Enable' /></td>
<td align='center' style='width: 76px'>
<asp:Button ID='Button3' runat='server' Text='Disable' /></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>

注意在這個示例中,ItemTemplate包含HTML控件和ASP.NET控件。圖7-24顯示了該示例在浏覽器中執行的結果。

因為GridView控件綁定了數據,所以還可以用數據綁定表達式訪問綁定到控件上的數據,如Eval、XPath或Bind表達式。例如,程序清單7-34說明了如何用Eval方法添加一個數據綁定表達式,設置按鈕控件的文本字段。本章後面將介紹數據綁定表達式的更多內容。

程序清單7-34 添加數據綁定表達式

<asp:gridview id="GridView1" 
<asp:TemplateField HeaderText='CurrentStatus'>
<ItemTemplate>
<table>
<tr>
<td align='center' style='width: 78px'>
<asp:Button ID='Button2' runat='server'
Text='<%# 'Enable ' + Eval('CustomerID') %>' /></td>
<td align='center' style='width: 76px'>
<asp:Button ID='Button3' runat='server'
Text='<%# 'Disable ' + Eval('CustomerID') %>' />
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
(點擊查看大圖)圖 7-24

其他常用的模板包括InsertTemplate和EditTemplate。在柵格中的一行進入插入或編輯模式時,柵格就會使用這些模板。


copyright © 萬盛學電腦網 all rights reserved