风影ASP.NET基础教学 11 FormView
无论功能上还是使用方法上,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 更新数据 |