;
<asp:Image ID="Image1" runat="server" ImageUrl=''''<%# Eval("FileName", "images/{0}") %>'''' />
<asp:HyperLink ID="HyperLink1" Text="Back to Album" NavigateUrl=''''<%# Eval("AlbumID", "PhotosDataList.aspx?ID={0}") %>'''' runat="server" />
</ItemTemplate>
</asp:FormView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="DataComponentTableAdapters.PhotosTableAdapter" SelectMethod="GetPhoto">
<SelectParameters>
<asp:QueryStringParameter Name="PhotoID" DefaultValue="9" QueryStringField="ID" />
</SelectParameters>
</asp:ObjectDataSource>
FormView与DetailsView类似,也跟踪当前显示的数据项,但是当数据源返回列表的时候,我们也可以选择支持多个数据项的分页操作。下面的例子显示了一个带有分页功能的FormView。
<asp:FormView ID="FormView1" Runat="server" DataSourceID="SqlDataSource1"
HeaderText="Books for Author" AllowPaging="True">
<ItemTemplate>
<asp:Image ID="Image1" ImageUrl=''''<%# Eval("title_id","~/Images/{0}.gif") %>'''' Runat="server" />
<asp:Label ID="Label1" Font-Size="1.2em" Font-Bold="true" Text=''''<%# Eval("title") %>'''' runat="server" />
<asp:Label ID="Label2" Text=''''<%# Eval("price","{0:c}") %>'''' runat="server" />
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT dbo.authors.au_id, dbo.titles.title_id, dbo.titles.title, dbo.titles.type, dbo.titles.price, dbo.titles.notes FROM dbo.authors INNER JOIN dbo.titleauthor ON dbo.authors.au_id = dbo.titleauthor.au_id INNER JOIN dbo.titles ON dbo.titleauthor.title_id = dbo.titles.title_id WHERE (dbo.authors.au_id = @au_id)"
ConnectionString="<%$ ConnectionStrings:Pubs %>">
<SelectParameters>
<asp:QueryStringParameter Name="au_id" DefaultValue="213-46-8915" QueryStringField="ID" />
</SelectParameters>
</asp:SqlDataSource>
双向数据绑定
FormView可以通过相关的数据源控件支持自动地更新、插入和删除操作(与DetailsView类似)。如果要定义编辑或插入的UI,那么除了定义数据项模板(ItemTemplate)之外,你还要定义EditItemTemplate或InsertItemTemplate模板。在这个模板中,你可以把输入控件(例如文本框、检查框或下拉列表)绑定到数据源的字段。这些模板中的数据绑定使用了"双向"数据绑定语法,允许FormView从模板的输入控件中提取值并传递给数据源。这些数据绑定操作用新的Bind(fieldname)语法代替了Eval。
请注意:使用Bind语法的数据绑定控件必须设置好ID属性。
GridView或DetailsView执行更新或插入操作的时候(这些控件的Columns或Fields都会定义BoundFields,绑定字段),GridView或