概述ASP.NET 2.0的FormView控件
创始人
2024-04-18 19:41:47
0

ASP.NET 2.0的FormView控件类似于DetailsView控件,因为它能方便地显示后端数据源的单个记录。本文将讨论这个控件的语法和应用。

用户化

虽然这两个控件一次显示一条记录,DetailsView和FormView的关键差别在于:FormView利用用户定义的模板;而 DetailsView则使用行字段。FormView控件没有预先定义数据布局;相反,你建立一个包含控件的模板来显示记录中的单个字段。模板中包含建立表单所要用到的格式、控件和绑定表达式。

你可以控制数据记录以三种形式显示:编辑、查看和添加一条新记录。另外,你可以包括和格式化标题与页脚元素。你还可以利用FormView控件各个部分中的任何一个有效的ASP.NET 2.0的FormView控件。

语法

宣称和使用一个FormView控件实例与宣称和使用一个DetailsView控件实例非常相似。它们的主要区别是,因为没有默认设置可以使用,你必须在FormView控件中包含显示数据的格式和模板。列表A显示了打开FormView元素标签的一部分语法。

你可能已经注意到,许多属性和HTML表格元素相对应,如标题和边框。这说明ASP.NET使用HTML表格来呈现FormView控件。

你可以通过微软网站在线查看一个更加全面的FormView控件属性列表。下表列出了一些值得关注的重要属性。

AllowPaging:一个说明用户能否对指定数据源中的记录分页的布尔值。如果设为真,则在所显示记录的底部显示默认的分页数字系统(从1到记录的数量)。分页链接可以通过各种分页属性自定义。
DataKeyNames:数据源的键字段。

DataSourceID:用来移植FormView控件数据源元素ID。如果使用SQL Server,它与分配给SqlDataSource元素的ID对应。

DefaultMode:允许你指定控件的默认行为。也就是说,在用户访问时,它最初如何显示。可能的值包括:ReadOnly、Insert和Edit。

EmptyDataText:遇到空数据值时显示的文本。
宣称FormView控件时,还必须对它的内容进行相应格式化。它的数据通过模板显示。FormView控件主要使用五个模板:

ItemTemplate:它控制用户查看数据时的显示情况。

EditItemTemplate:它决定用户编辑记录时的格式和数据元素的显示情况。在这个模板内,你将使用其它控件,如TextBox元素,允许用户编辑值。

InsertItemTemplate:与编辑一条记录相似,这个模板控制允许用户在后端数据源中添加一条新记录的字段的显示。由于输入了新的值,应该根据数据的要求允许用户自由输入文本或限制某些值。

FooterTemplate:决定FormView控件表格页脚部分显示的内容,如果有的话。

HeaderTemplate:决定FormView控件表格标题部分显示的内容,如果有的话。

这些模板允许你控制绑定到一个FormView控件的数据的显示和行为。例如,列表B中的ASP.NET Web表单连接到标准的Northwind数据库,允许用户通过名字、姓、雇用日期和家庭电话号码字段查看、编辑、删除和添加新的员工记录。

它使用TextField控件显示被编辑或添加的数据,以及只是为了查阅而显示的值。ItemTemplate使用CSS格式化表格,而InsertTemplate则使用HTML样式进行格式化,到底使用哪种方法由开发者决定。

注:ASP.NET用Button控件添加、编辑、删除和保存记录。

在Button控件中,New的CommandName值将记录转换为插入模式并加载InsertItemTemplate模板,它允许用户输入一个新记录值。你可以用Edit的CommandName值给ItemTemplate增加一个新按钮,使FormView控件进入编辑模式。

可以给ItemTemplate模板增加一个带Delete的CommnadName值的按钮,允许用户从数据源中删除当前记录。Update的CommnadName保存数据,而Cancel终止操作。

开发者控制

ASP.NET 2.0的FormView控件令人惊喜。FormView对DetailsView的简单功能进行了扩张,允许你根据需要轻松控制要格式化的显示内容。这个新控件为你交付解决方案提供另一个选项。

 

  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. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  10.  xmlns="http://www.w3.org/1999/xhtml" > 
  11.  runat="server"> 
  12. </FONT></STRONG>FormView Example<STRONG><FONT color=#006699> 
  13.  
  14.  id="frmFormViewExample" runat="server"> 
  15.     
  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.  
  19.  ID="EmpDetails" runat="server" DataKeyNames="Employeeid"
    DataSourceId="fvExample" AllowPaging="true"> 
  20.  
  21.  style="font-family: Sans Serif; font-size: medium;"> 
  22.  colspan="2" style="background: gray; font-weight: bold;"> 
  23. <%# Eval("LastName") + ", " + Eval("FirstName")  %> 
  24. ID 
  25. <%# Eval("EmployeeID") %> 
  26. Phone 
  27. <%# Eval("HomePhone") %>
     
  28. Hired 
  29. <%# Eval("HireDate", "") %>
     
  30.  colspan="2"> 
  31.  ID="btnEdit" CommandName="Edit" Text="Edit" runat="server"/> 
  32.  ID="btnDelete" CommandName="Delete" Text="Delete" runat="server"/> 
  33.  ID="btnAdd" CommandName="New" Text="New" runat="server"/> 
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.               
  41.  
  42.  
  43.  
  44.  
  45.  
  46.               
  47.  
  48.  
  49.               
  50.  
  51.  colspan="2"> 
  52.  ID="btnUpdate" CommandName="Update" Text="Update Employee" 
    runat="server"/> 
  53.  ID="btnCancel" CommandName="Cancel" Text="Cancel" runat=
    "server"/>
  54. ID<%# Eval("EmployeeID") %>
    Last Name<asp:TextBoxRunatasp:TextBoxRunat="server" ID="TextBox2" Text='
    <%# Bind("LastName") %>'
     />
    First Name<asp:TextBoxRunatasp:TextBoxRunat="server" ID="FirstName" Text='
    <%# Bind("FirstName") %>'
     />
    Phone<asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtPhone" Text='
    <%# Bind("HomePhone") %>'
     />
    Hire Date<asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtHireDate" Text='
    <%# Bind("HireDate") %>'
     />
     
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  colspan="2"> 
  67.  ID="btnInsert" CommandName="Insert" Text="Save" runat="server"/> 
  68.  ID="btnCancel2" CommandName="Cancel" Text="Cancel" runat=
    "server"/>
  69.  
  70. Last Name<asp:TextBoxRunatasp:TextBoxRunat="server" ID="TextBox1" Text='
    <%# Bind("HomePhone") %>'
     />
    First Name<asp:TextBoxRunatasp:TextBoxRunat="server" ID="FirstName" Text='
    <%# Bind("FirstName") %>'
     />
    Home Phone<asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtHomePhone2" Text='
    <%# Bind("HomePhone") %>'
     />
    Hired<asp:TextBoxRunatasp:TextBoxRunat="server" ID="txtHireDate2" Text='
    <%# Bind("HireDate") %>'
     />
     
  71.  
  72.  
 

【编辑推荐】

  1. 浅析ASP.NET中配置文件
  2. .NET RIA Services就像ASP.NET那样方便
  3. ASP.NET AJAX Extensions中UpdatePanel控件概述
  4. ASP.NET调用UpdatePanel的Update()方法
  5. 浅谈ASP.NET AJAX的WCF服务

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...