溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET 2.0中如何使用FormView控件

發(fā)布時(shí)間:2021-07-15 15:04:35 來(lái)源:億速云 閱讀:177 作者:Leah 欄目:編程語(yǔ)言

ASP.NET 2.0中如何使用FormView控件,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

用戶化

雖然這兩個(gè)控件一次顯示一條記錄,DetailsView和FormView的關(guān)鍵差別在于:FormView利用用戶定義的模板;而 DetailsView則使用行字段。FormView控件沒(méi)有預(yù)先定義數(shù)據(jù)布局;相反,你建立一個(gè)包含控件的模板來(lái)顯示記錄中的單個(gè)字段。模板中包含建立表單所要用到的格式、控件和綁定表達(dá)式。

你可以控制數(shù)據(jù)記錄以三種形式顯示:編輯、查看和添加一條新記錄。另外,你可以包括和格式化標(biāo)題與頁(yè)腳元素。你還可以利用FormView控件各個(gè)部分中的任何一個(gè)有效的ASP.NET 2.0的FormView控件。

語(yǔ)法

宣稱和使用一個(gè)FormView控件實(shí)例與宣稱和使用一個(gè)DetailsView控件實(shí)例非常相似。它們的主要區(qū)別是,因?yàn)闆](méi)有默認(rèn)設(shè)置可以使用,你必須在FormView控件中包含顯示數(shù)據(jù)的格式和模板。列表A顯示了打開(kāi)FormView元素標(biāo)簽的一部分語(yǔ)法。

你可能已經(jīng)注意到,許多屬性和HTML表格元素相對(duì)應(yīng),如標(biāo)題和邊框。這說(shuō)明ASP.NET使用HTML表格來(lái)呈現(xiàn)FormView控件。

你可以通過(guò)微軟網(wǎng)站在線查看一個(gè)更加全面的FormView控件屬性列表。下表列出了一些值得關(guān)注的重要屬性。

AllowPaging:一個(gè)說(shuō)明用戶能否對(duì)指定數(shù)據(jù)源中的記錄分頁(yè)的布爾值。如果設(shè)為真,則在所顯示記錄的底部顯示默認(rèn)的分頁(yè)數(shù)字系統(tǒng)(從1到記錄的數(shù)量)。分頁(yè)鏈接可以通過(guò)各種分頁(yè)屬性自定義。
DataKeyNames:數(shù)據(jù)源的鍵字段。

DataSourceID:用來(lái)移植FormView控件數(shù)據(jù)源元素ID。如果使用SQL Server,它與分配給SqlDataSource元素的ID對(duì)應(yīng)。

DefaultMode:允許你指定控件的默認(rèn)行為。也就是說(shuō),在用戶訪問(wèn)時(shí),它最初如何顯示??赡艿闹蛋ǎ篟eadOnly、Insert和Edit。

EmptyDataText:遇到空數(shù)據(jù)值時(shí)顯示的文本。
宣稱FormView控件時(shí),還必須對(duì)它的內(nèi)容進(jìn)行相應(yīng)格式化。它的數(shù)據(jù)通過(guò)模板顯示。FormView控件主要使用五個(gè)模板:

ItemTemplate:它控制用戶查看數(shù)據(jù)時(shí)的顯示情況。

EditItemTemplate:它決定用戶編輯記錄時(shí)的格式和數(shù)據(jù)元素的顯示情況。在這個(gè)模板內(nèi),你將使用其它控件,如TextBox元素,允許用戶編輯值。

InsertItemTemplate:與編輯一條記錄相似,這個(gè)模板控制允許用戶在后端數(shù)據(jù)源中添加一條新記錄的字段的顯示。由于輸入了新的值,應(yīng)該根據(jù)數(shù)據(jù)的要求允許用戶自由輸入文本或限制某些值。

FooterTemplate:決定FormView控件表格頁(yè)腳部分顯示的內(nèi)容,如果有的話。

HeaderTemplate:決定FormView控件表格標(biāo)題部分顯示的內(nèi)容,如果有的話。

這些模板允許你控制綁定到一個(gè)FormView控件的數(shù)據(jù)的顯示和行為。例如,列表B中的ASP.NET Web表單連接到標(biāo)準(zhǔn)的Northwind數(shù)據(jù)庫(kù),允許用戶通過(guò)名字、姓、雇用日期和家庭電話號(hào)碼字段查看、編輯、刪除和添加新的員工記錄。

它使用TextField控件顯示被編輯或添加的數(shù)據(jù),以及只是為了查閱而顯示的值。ItemTemplate使用CSS格式化表格,而InsertTemplate則使用HTML樣式進(jìn)行格式化,到底使用哪種方法由開(kāi)發(fā)者決定。

注:ASP.NET用Button控件添加、編輯、刪除和保存記錄。

在Button控件中,New的CommandName值將記錄轉(zhuǎn)換為插入模式并加載InsertItemTemplate模板,它允許用戶輸入一個(gè)新記錄值。你可以用Edit的CommandName值給ItemTemplate增加一個(gè)新按鈕,使FormView控件進(jìn)入編輯模式。

可以給ItemTemplate模板增加一個(gè)帶Delete的CommnadName值的按鈕,允許用戶從數(shù)據(jù)源中刪除當(dāng)前記錄。Update的CommnadName保存數(shù)據(jù),而Cancel終止操作。

開(kāi)發(fā)者控制

ASP.NET 2.0的FormView控件令人驚喜。FormView對(duì)DetailsView的簡(jiǎn)單功能進(jìn)行了擴(kuò)張,允許你根據(jù)需要輕松控制要格式化的顯示內(nèi)容。這個(gè)新控件為你交付解決方案提供另一個(gè)選項(xiàng)。

  1. <asp:FormViewAllowPagingasp:FormViewAllowPaging="True|False"BackColor=
    "color name|#dddddd"BorderColor="color name|#dddddd" 

  2. BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|Inset|
    Outset"BorderWidth="size"  

  3. Caption="string"CaptionAlign="NotSet|Top|Bottom|Left|Right"CellPadding=
    "integer"CellSpacing="integer"CssClass="string"DataKeyNames="string"
    DataSourceID="string"DefaultMode="ReadOnly|Edit|Insert"EmptyDataText="string" 

  4. Enabled="True|False"GridLines="None|Horizontal|Vertical|Both"runat=
    "server"SkinID="string"  

  5. Style="string" 

  6. Visible="True|False"> 

  7.  

  8. <%@ Page Language="C#" %> 

  9. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

  10. <html xmlns="http://www.w3.org/1999/xhtml" > 

  11. <head runat="server"> 

  12. <title>FormView Example</title> 

  13. </head><body> 

  14. <form id="frmFormViewExample" runat="server"> 

  15. <asp:SqlDataSource    

  16. ID="fvExample" 

  17. ConnectionString="Server=localhost;Database=Northwind;Trusted_Connection=true" 
    SelectCommand="SELECT EmployeeID, LastName, FirstName, HomePhone, HireDate FROM 
    Employees"
     Runat="Server" UpdateCommand="UPDATE Employees SET LastName=@LastName,
    FirstName=@FirstName, HomePhone=@HomePhone, HireDate=@HireDate WHERE 
    EmployeeID=@EmployeeID"
      DeleteCommand="DELETE FROM Employees WHERE 
    EmployeeID=@EmployeeID"InsertCommand="INSERT INTO Employees (LastName, 
    FirstName, HomePhone, HireDate) VALUES (@LastName, @FirstName, @HomePhone, @HireDate)" /> 

  18. <div> 

  19. <asp:FormView ID="EmpDetails" runat="server" DataKeyNames="Employeeid"
    DataSourceId="fvExample" AllowPaging="true"> 

  20. <ItemTemplate> 

  21. <table style="font-family: Sans Serif; font-size: medium;"> 

  22. <tr><td colspan="2" style="background: gray; font-weight: bold;"> 

  23. <%# Eval("LastName") + ", " + Eval("FirstName")  %></td></tr> 

  24. <tr><td>ID</td> 

  25. <td><%# Eval("EmployeeID") %></td></tr> 

  26. <tr><td>Phone</td> 

  27. <td><%# Eval("HomePhone") %><br></td></tr> 

  28. <tr><td>Hired</td> 

  29. <td><%# Eval("HireDate", "") %><br></td></tr> 

  30. <tr><td colspan="2"> 

  31. <asp:Button ID="btnEdit" CommandName="Edit" Text="Edit" runat="server"/> 

  32. <asp:Button ID="btnDelete" CommandName="Delete" Text="Delete" runat="server"/> 

  33. <asp:Button ID="btnAdd" CommandName="New" Text="New" runat="server"/></td></tr> 

  34. </table> 

  35. </ItemTemplate> 

  36. <EditItemTemplate> 

  37. <table> 

  38. <tr><td>ID</td> 

  39. <td><%# Eval("EmployeeID") %><br></td></tr> 

  40. <tr><td>Last Name</td>              

  41. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="TextBox2" Text='
    <%# Bind("LastName") %>'
     /></td> 

  42. </tr> 

  43. <tr><td>First Name</td> 

  44. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="FirstName" Text='
    <%# Bind("FirstName") %>'
     /></td> 

  45. </tr> 

  46. <tr><td>Phone</td>              

  47. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtPhone" Text='
    <%# Bind("HomePhone") %>'
     /></td> 

  48. </tr> 

  49. <tr><td>Hire Date</td>              

  50. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtHireDate" Text='
    <%# Bind("HireDate") %>'
     /></td></tr> 

  51. <tr><td colspan="2"> 

  52. <asp:Button ID="btnUpdate" CommandName="Update" Text="Update Employee" 
    runat="server"/> 

  53. <asp:Button ID="btnCancel" CommandName="Cancel" Text="Cancel" runat=
    "server"/></td></tr></table> 

  54. </EditItemTemplate> 

  55. <InsertItemTemplate> 

  56. <table> 

  57. <tr><td><b>Last Name</b></td> 

  58. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="TextBox1" Text='
    <%# Bind("HomePhone") %>'
     /></td></tr> 

  59. <tr><td><b>First Name</b></td> 

  60. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="FirstName" Text='
    <%# Bind("FirstName") %>'
     /></td></tr> 

  61. <tr><td><b>Home Phone</b></td> 

  62. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtHomePhone2" Text='
    <%# Bind("HomePhone") %>'
     /></td></tr> 

  63. <tr><td><b>Hired</b></td> 

  64. <td><asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtHireDate2" Text='
    <%# Bind("HireDate") %>'
     /></td></tr> 

  65. <tr><td colspan="2"> 

  66. <asp:Button ID="btnInsert" CommandName="Insert" Text="Save" runat="server"/> 

  67. <asp:Button ID="btnCancel2" CommandName="Cancel" Text="Cancel" runat=
    "server"/></td></tr> 

  68. </table> 

  69. </InsertItemTemplate> 

  70. </asp:FormView> 

  71. </div></form></body></html> 

關(guān)于ASP.NET 2.0中如何使用FormView控件問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI