首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 數據教程(十二):GridView TemplateField 進階自訂與格式化方法應用

     編輯:關於ASP.NET

返回 ASP.NET 2.0 數據教程目錄

導言

GridView` 由一組欄位(Field`)組成,指定來自 DataSource` 哪些屬性用於輸出呈現。最簡單欄位類型 BoundField` 僅將資料簡單顯示為文字。其他欄位類型使用互動 HTML 元素顯示資料。例:CheckBoxField` 呈現核取方塊,選取狀態由特定資料欄位值決定;ImageField` 將特定欄位呈現圖片(欄位應放圖片資料)。超連結與按鈕狀態取決於 HyperLinkField`、`ButtonField` 欄位類型資料欄位值。

雖 CheckBoxField`、`ImageField`、`HyperLinkField`、`ButtonField` 考慮資料互動視圖,仍有格式化限制。CheckBoxField` 僅顯示單核取方塊,ImageField` 僅單張圖片。若欄位需顯示文字、核取方塊、圖片等基於不同資料東西怎麼辦?或需用核取方塊、圖片、超連結、按鈕以外 Web 控制項顯示資料怎麼辦?此外 BoundField` 僅顯示單一資料欄位。若想在一 GridView` 欄顯示兩個以上資料欄位值怎麼辦?

為適應複雜情況,GridView` 提供 TemplateField` 使用模板呈現。模板可含靜態 HTML、Web 控制項、資料繫結程式碼。TemplateField` 擁有各種不同情況頁面呈現模板。例:ItemTemplate` 為預設呈現每列單元格,EditItemTemplate` 用於編輯資料自訂介面。

本教程解釋使用 TemplateField` 更進階自訂 GridView`。上節 基於數據的自定義格式化 見 DataBound`、`RowDataBound` 事件處理自訂基於資料格式化。另一辦法在模板中呼叫格式化方法。本節將見此技術。

本節範例

用數個 TemplateField` 自訂員工資訊呈現。特別:列出所有員工,但將姓氏名字合併一欄、僱用日期放入 Calendar` 控制項、用狀態欄表明任職多久(見圖 1)。

圖一:使用三個 TemplateField 自訂資訊顯示方式

圖一:使用三個 TemplateField 來自訂信息的顯示方式

第一步:將資料繫結至 GridView

需用 TemplateField` 自訂顯示時,最簡單:先建立僅含 BoundField` 的 GridView`,再新增 TemplateField`,需時轉換部分 BoundField`。開啟 GridViewTemplateField.aspx`,拖 GridView` 至設計器。從智慧標籤選擇新增呼叫 EmployeesBLL` 類別 GetEmployees()` 方法的 ObjectDataSource`。

圖二:新增呼叫 GetEmployees() 方法的 ObjectDataSource 控制項

圖二:新增一個新的呼叫 GetEmployees() 方法的 ObjectDataSource 控制項

此方式繫結 GridView` 自動為員工資訊每屬性添加 BoundField`:EmployeeID`、`LastName`、`FirstName`、`Title`、`HireDate`、`ReportsTo`、`Country`。本報表不需 EmployeeID`、`ReportsTo`、`Country`。刪除 BoundField` 兩法:

  • 使用欄位對話框 — GridView` 智慧標籤彈出選單點「編輯欄」,左下列表選中要刪除 BoundField` 點紅叉按鈕刪除
  • 手工編輯宣告語句 — 原始碼檢視找到要刪除 BoundField`(<asp:BoundField>` 元素)刪除

刪除後 GridView` 標記語言如下:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeID"
  DataSourceID="ObjectDataSource1">
  <Columns>
    <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
    <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
    <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
    <asp:BoundField DataField="HireDate" HeaderText="HireDate" SortExpression="HireDate" />
  </Columns>
</asp:GridView>

瀏覽器查看成果:每記錄為員工資訊,四欄:姓、名、頭銜、受僱日期(見圖 3)。

圖三:每員工資訊顯示 LastName、FirstName、Title、HireDate

圖三:每一個員工信息都顯示了 LastName、FirstName、Title 和 HireDate

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved