ASP.NET Tutorial/Data Binding/FormView
Содержание
A FormView: edit a table record in the database table
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show FormView</title>
</head> <body>
<form id="form1" runat="server">
<asp:FormView id="FormView1" DataKeyNames="Id" DataSourceId="srcProducts" DefaultMode="Edit" AllowPaging="true" Runat="server"> <EditItemTemplate> <asp:Label id="lblTitle" Text="Title:" AssociatedControlID="txtTitle" Runat="server" /> <asp:TextBox id="txtTitle" Text="<%#Bind("Title")%>" Runat="server" />
<asp:Label id="lblDirector" Text="Director:" AssociatedControlID="txtDirector" Runat="server" /> <asp:TextBox id="txtDirector" Text="<%#Bind("Director")%>" Runat="server" />
<asp:Button id="btnUpdate" Text="Update" CommandName="Update" Runat="server" /> </EditItemTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="Data Source=.\SQLExpress; AttachDbFilename=|DataDirectory|MyDatabase.mdf; Integrated Security=True;User Instance=True" SelectCommand="SELECT Id, Title,Director,DateReleased FROM Products" UpdateCommand="UPDATE Products SET Title=@Title, Director=@Director WHERE Id=@Id" Runat="server" />
</form>
</body> </html></source>
Deleting Data with the FormView Control
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <body>
<form id="form1" runat="server">
<asp:FormView id="frmProducts" DataSourceID="srcProducts" DataKeyNames="Id" AllowPaging="true" Runat="server"> <ItemTemplate>
<%# Eval("Title") %>
Directed By: <%# Eval("Director") %>
In Theaters: <%#Eval("InStock") %>
<asp:LinkButton id="lnkDelete" Text="Delete Product" CommandName="Delete" OnClientClick="return confirm("Are you sure?");" Runat="server" /> </ItemTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="<%$ ConnectionStrings:Products %>" SelectCommand="SELECT Id,Title,Director,InStock FROM Products" DeleteCommand="DELETE Products WHERE Id=@Id" Runat="server" />
</form>
</body> </html> File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration></source>
Displaying Data with the FormView Control
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <body>
<form id="form1" runat="server">
<asp:FormView id="frmProducts" DataSourceID="srcProducts" Runat="server"> <ItemTemplate>
<%# Eval("Title") %>
Directed By: <%# Eval("Director") %>
Box Office Totals: <%#Eval("Totals", "{0:c}") %> </ItemTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="<%$ ConnectionStrings:Products %>" SelectCommand="SELECT Id,Title,Director,Totals FROM Products WHERE Id=1" Runat="server" />
</form>
</body> </html> File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration></source>
Editing Data with the FormView Control
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <body>
<form id="form1" runat="server">
<asp:FormView id="frmProducts" DataSourceID="srcProducts" DataKeyNames="Id" AllowPaging="true" Runat="server"> <ItemTemplate>
<%# Eval("Title") %>
Directed By: <%# Eval("Director") %>
Box Office Totals: <%#Eval("Totals", "{0:c}") %>
<asp:LinkButton id="lnkEdit" Text="Edit Product" CommandName="Edit" Runat="server" /> </ItemTemplate> <EditItemTemplate> <asp:Label id="lblTitle" Text="Product Title:" AssociatedControlID="txtTitle" Runat="server" />
<asp:TextBox id="txtTitle" Text="<%# Bind("Title") %> Runat="server" />
<asp:Label id="lblDirector" Text="Product Director:" AssociatedControlID="txtDirector" Runat="server" />
<asp:TextBox id="txtDirector" Text="<%# Bind("Director") %> Runat="server" />
<asp:Label id="lblTotals" Text="Box Office Totals:" AssociatedControlID="txtTotals" Runat="server" />
<asp:TextBox id="txtTotals" Text="<%# Bind("Totals") %> Runat="server" />
<asp:LinkButton id="lnkUpdate" Text="Update Product" CommandName="Update" Runat="server" /> | <asp:LinkButton id="lnkCancel" Text="Cancel Update" CommandName="Cancel" Runat="server" /> </EditItemTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="<%$ ConnectionStrings:Products %>" SelectCommand="SELECT Id,Title,Director,Totals FROM Products" UpdateCommand="UPDATE Products SET Title=@Title, Director=@Director,Totals=@Totals WHERE Id=@Id" Runat="server" />
</form>
</body> </html></source>
Inserting Data with the FormView Control
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <body>
<form id="form1" runat="server">
<asp:FormView id="frmProducts" DataSourceID="srcProducts" AllowPaging="true" Runat="server"> <ItemTemplate>
<%# Eval("Title") %>
Directed By: <%# Eval("Director") %>
In Theaters: <%#Eval("InStock") %>
<asp:LinkButton id="lnkNew" Text="New Product" CommandName="New" Runat="server" /> </ItemTemplate> <InsertItemTemplate> <asp:Label id="lblTitle" Text="Product Title:" AssociatedControlID="txtTitle" Runat="server" />
<asp:TextBox id="txtTitle" Text="<%# Bind("Title") %> Runat="server" />
<asp:Label id="lblDirector" Text="Product Director:" AssociatedControlID="txtDirector" Runat="server" />
<asp:TextBox id="txtDirector" Text="<%# Bind("Director") %> Runat="server" />
<asp:CheckBox id="chkInStock" Text="In Theaters" Checked="<%# Bind("InStock") %> Runat="server" />
<asp:LinkButton id="lnkInsert" Text="Insert Product" CommandName="Insert" Runat="server" /> | <asp:LinkButton id="lnkCancel" Text="Cancel Insert" CommandName="Cancel" Runat="server" /> </InsertItemTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="<%$ ConnectionStrings:Products %>" SelectCommand="SELECT Id,Title,Director,InStock FROM Products" InsertCommand="INSERT Products (Title,Director,InStock) VALUES (@Title,@Director, Runat="server" />
</form>
</body> </html>
File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration></source>
Paging Through Data with the FormView Control
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show FormView Paging</title>
</head> <body>
<form id="form1" runat="server">
<asp:FormView id="frmProducts" DataSourceID="srcProducts" AllowPaging="true" Runat="server"> <ItemTemplate>
<%# Eval("Title") %>
Directed By: <%# Eval("Director") %>
Box Office Totals: <%#Eval("Totals", "{0:c}") %> </ItemTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="<%$ ConnectionStrings:Products %>" SelectCommand="SELECT Id,Title,Director,Totals FROM Products" Runat="server" />
</form>
</body> </html> File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration></source>
Using a PagerTemplate with the FormView control.
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > <body>
<form id="form1" runat="server">
<asp:FormView id="frmProducts" DataSourceID="srcProducts" AllowPaging="true" CssClass="frmProducts" Runat="server"> <ItemTemplate>
<%# Eval("Title") %>
Directed By: <%# Eval("Director") %>
Box Office Totals: <%#Eval("Totals", "{0:c}") %> </ItemTemplate> <PagerTemplate>
Page: <%# frmProducts.PageIndex + 1 %>
<asp:LinkButton id="lnkPrevious" Text="Previous Page" CommandName="Page" CommandArgument="Prev" Runat="server" /> | <asp:LinkButton id="lnkNext" Text="Next Page" CommandName="Page" CommandArgument="Next" Runat="server" />
</PagerTemplate> </asp:FormView> <asp:SqlDataSource id="srcProducts" ConnectionString="<%$ ConnectionStrings:Products %>" SelectCommand="SELECT Id,Title,Director,Totals FROM Products" Runat="server" />
</form>
</body> </html> File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration></source>