文章目錄
無論功能上還是使用方法上,FormView與DetailsView都非常的類似,FormView控制項使你同樣可以使用資料來源的單個記錄。它也用於更新和插入新紀錄,並且通常在詳細方案中使用,在這些方案中,主控制項的選中記錄決定要在FormView控制項中顯示的記錄。
FormView和DetailsView控制項的區別在於,DetailsView控制項使用表格版面配置,在該布局中,記錄的每個欄位都各自顯示為一行,而FormView控制項不指定用於顯示記錄的預定義布局,它在顯示上比DetailsView控制項具有更大的靈活性。實際上,將建立一個包含控制項的模板,以顯示記錄中的各個欄位,該模板中可以包含用於建立表單的格式、控制項和綁定運算式等。
可以用於通過建立模板來為FormView控制項產生使用者介面,為不同操作指定不同的模板。
FormView常用的模板
EditItemTemplate |
定義資料行在FormView控制項處於編輯模式時的內容。此模板通常包含使用者可以用來編輯現有記錄的輸入控制項和命令按鈕 |
EmptyTemplate |
定義在沒有資料時的模板內容 |
FooterTemplate |
定義底部的內容 |
HeaderTemplate |
定義頭部的內容 |
ItemTemplate |
定義資料行在FormView控制項處於唯讀模式時的內容 |
InsertItemTemplate |
定義資料行在FormView控制項處於插入模式時的內容。 |
PagerTemplate |
定義用於啟用分頁的功能。 |
如下代碼所示
<form id="form1" runat="server">
<div>
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<b>
<%# Eval("Id") %>
<%# Eval("Title") %>
</b>
<hr />
<small>
<li><%# Eval("PublishDate") %></li>
<li><%# Eval("UnitPrice") %></li>
<li><%# Eval("CategoryId") %></li>
</small>
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:con %>" runat="server" SelectCommand="Select * from Books"></asp:SqlDataSource>
</div>
</form>
運行結果:
與DetailsView一樣,FormView也提供了許多內建功能,這些功能使我們可以對控制項中的項進行更新、刪除、插入和分頁。FormView控制項綁定到資料來源控制項時,FormView控制項可以利用該資料來源控制項的功能並提供自動更新、刪除、插入和分頁功能。
值得注意的是FormView使用的是模板,所以該控制項不提供自動產生命令按鈕以執行更新、刪除插入等方法,因此我們需要自己動手將這些命令包含在合適的模板中,FormView控制項識別CommandName屬性,下面列出了可以識別的命令按鈕
取消 |
Cancel 返回預設模式 |
刪除 |
Delete 刪除資料 |
編輯 |
Edit 進入編輯模式 |
插入 |
Insert 插入資料 |
建立 |
New 進入插入模式 |
頁 |
Page 如果設定分頁操作,請將該按鈕的CommandArgument屬性設定為“Next”,”Prev”,”First”,”Last” |
更新 |
Update 更新資料 |