ASP.NET Tutorial/Data Binding/FormView

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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>