ASP.NET Tutorial/Data Binding/FormView
Содержание
- 1 A FormView: edit a table record in the database table
- 2 Deleting Data with the FormView Control
- 3 Displaying Data with the FormView Control
- 4 Editing Data with the FormView Control
- 5 Inserting Data with the FormView Control
- 6 Paging Through Data with the FormView Control
- 7 Using a PagerTemplate with the FormView control.
A FormView: edit a table record in the database table
<%@ 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">
<div>
<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" />
<br />
<asp:Label
id="lblDirector"
Text="Director:"
AssociatedControlID="txtDirector"
Runat="server" />
<asp:TextBox
id="txtDirector"
Text="<%#Bind("Director")%>"
Runat="server" />
<br />
<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" />
</div>
</form>
</body>
</html>
Deleting Data with the FormView Control
<%@ 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">
<div id="content">
<asp:FormView
id="frmProducts"
DataSourceID="srcProducts"
DataKeyNames="Id"
AllowPaging="true"
Runat="server">
<ItemTemplate>
<h1><%# Eval("Title") %></h1>
<b>Directed By:</b>
<%# Eval("Director") %>
<br />
<b>In Theaters:</b>
<%#Eval("InStock") %>
<hr />
<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" />
</div>
</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>
Displaying Data with the FormView Control
<%@ 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">
<div id="content">
<asp:FormView
id="frmProducts"
DataSourceID="srcProducts"
Runat="server">
<ItemTemplate>
<h1><%# Eval("Title") %></h1>
<b>Directed By:</b>
<%# Eval("Director") %>
<br />
<b>Box Office Totals:</b>
<%#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" />
</div>
</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>
Editing Data with the FormView Control
<%@ 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">
<div id="content">
<asp:FormView
id="frmProducts"
DataSourceID="srcProducts"
DataKeyNames="Id"
AllowPaging="true"
Runat="server">
<ItemTemplate>
<h1><%# Eval("Title") %></h1>
<b>Directed By:</b>
<%# Eval("Director") %>
<br />
<b>Box Office Totals:</b>
<%#Eval("Totals", "{0:c}") %>
<hr />
<asp:LinkButton
id="lnkEdit"
Text="Edit Product"
CommandName="Edit"
Runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:Label
id="lblTitle"
Text="Product Title:"
AssociatedControlID="txtTitle"
Runat="server" />
<br />
<asp:TextBox
id="txtTitle"
Text="<%# Bind("Title") %>
Runat="server" />
<br /><br />
<asp:Label
id="lblDirector"
Text="Product Director:"
AssociatedControlID="txtDirector"
Runat="server" />
<br />
<asp:TextBox
id="txtDirector"
Text="<%# Bind("Director") %>
Runat="server" />
<br /><br />
<asp:Label
id="lblTotals"
Text="Box Office Totals:"
AssociatedControlID="txtTotals"
Runat="server" />
<br />
<asp:TextBox
id="txtTotals"
Text="<%# Bind("Totals") %>
Runat="server" />
<br /><br />
<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" />
</div>
</form>
</body>
</html>
Inserting Data with the FormView Control
<%@ 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">
<div id="content">
<asp:FormView
id="frmProducts"
DataSourceID="srcProducts"
AllowPaging="true"
Runat="server">
<ItemTemplate>
<h1><%# Eval("Title") %></h1>
<b>Directed By:</b>
<%# Eval("Director") %>
<br />
<b>In Theaters:</b>
<%#Eval("InStock") %>
<hr />
<asp:LinkButton
id="lnkNew"
Text="New Product"
CommandName="New"
Runat="server" />
</ItemTemplate>
<InsertItemTemplate>
<asp:Label
id="lblTitle"
Text="Product Title:"
AssociatedControlID="txtTitle"
Runat="server" />
<br />
<asp:TextBox
id="txtTitle"
Text="<%# Bind("Title") %>
Runat="server" />
<br /><br />
<asp:Label
id="lblDirector"
Text="Product Director:"
AssociatedControlID="txtDirector"
Runat="server" />
<br />
<asp:TextBox
id="txtDirector"
Text="<%# Bind("Director") %>
Runat="server" />
<br /><br />
<asp:CheckBox
id="chkInStock"
Text="In Theaters"
Checked="<%# Bind("InStock") %>
Runat="server" />
<br /><br />
<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" />
</div>
</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>
Paging Through Data with the FormView Control
<%@ 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">
<div id="content">
<asp:FormView
id="frmProducts"
DataSourceID="srcProducts"
AllowPaging="true"
Runat="server">
<ItemTemplate>
<h1><%# Eval("Title") %></h1>
<b>Directed By:</b>
<%# Eval("Director") %>
<br />
<b>Box Office Totals:</b>
<%#Eval("Totals", "{0:c}") %>
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource
id="srcProducts"
ConnectionString="<%$ ConnectionStrings:Products %>"
SelectCommand="SELECT Id,Title,Director,Totals FROM Products"
Runat="server" />
</div>
</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>
Using a PagerTemplate with the FormView control.
<%@ 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">
<div id="content">
<asp:FormView
id="frmProducts"
DataSourceID="srcProducts"
AllowPaging="true"
CssClass="frmProducts"
Runat="server">
<ItemTemplate>
<h1><%# Eval("Title") %></h1>
<b>Directed By:</b>
<%# Eval("Director") %>
<br />
<b>Box Office Totals:</b>
<%#Eval("Totals", "{0:c}") %>
</ItemTemplate>
<PagerTemplate>
<hr />
<div style="float:left">
Page: <%# frmProducts.PageIndex + 1 %>
</div>
<div style="float:right;white-space:nowrap">
<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" />
</div>
</PagerTemplate>
</asp:FormView>
<asp:SqlDataSource
id="srcProducts"
ConnectionString="<%$ ConnectionStrings:Products %>"
SelectCommand="SELECT Id,Title,Director,Totals FROM Products"
Runat="server" />
</div>
</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>