Ngôn ngữ ASP.NET - Điều khiển FormView

Đối tượng điều khiển FormView

Tương tự DetailsView nhưng cho phép trình bày dữ liệu theo các mẫu tùy chọn (custom temnplates), thể hiện trên trình duyệt dưới dạng HTML Table
Đặc điểm:

  • Hỗ trợ cơ chế phân trang dữ liệu
  • Cho phép cập nhật dữ liệu trực tiếp

Liên kết, định dạng và các xử lý:

  • Giống DetailsView

Ví dụ: tạo trang web ListCustomer.aspx:

Bước 1: Kéo thả điều khiển FormView từ ToolBox -> Chọn New data source


Bước 2: Chọn kết nối với cơ sở dữ liệu -> chọn chuỗi kết nối -> chọn table cần làm nguồn dữ liệu

Chọn Next -> finish

Bước 3 : Chọn Edit template chuẩn qua chuyển qua chế độ thiết kế

Bước 4: Insert table 2 cột, 6 dòng.  Thiết kế trình bày với các Control điều khiển  tùy biến

Bước 5: Định dạng cột ngày theo dạng dd/MM/YYYY, insert Label hiện thị: Nam hoặc Nữ dựa vào cột Gioitinh True Hay False

  • Định dạng cột ngày theo dạng dd/MM/YYYY


     
  • Insert Label hiện thị: Nam hoặc Nữ dựa vào cột Gioitinh True Hay False

Bước 6 : Vào properties của FormView nhập tiêu đề cho FormView



Bước 7: Xử lý phân trang với điều khiển FormView 
Để tạo phân trang chỉ định thuộc tính AllowPaging=”true” cho điều khiển DetailView. Với các thuộc tính định dạng thuộc nhóm thuộc tính: Pagersettings 

Code trang ListCustomer.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ShowListCustomer.aspx.cs" Inherits="ShowListCustomer" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:FormView ID="FormView1" runat="server" AllowPaging="True" CellPadding="4" DataKeyNames="MaKH" DataSourceID="SqlDataSource2" ForeColor="#333333" HeaderText="Danh sách khách hàng" Width="489px">
            <EditItemTemplate>
                MaKH:
                <asp:Label ID="MaKHLabel1" runat="server" Text='<%# Eval("MaKH") %>' />
                <br />
                HoTenKH:
                <asp:TextBox ID="HoTenKHTextBox" runat="server" Text='<%# Bind("HoTenKH") %>' />
                <br />
                DiaChiKH:
                <asp:TextBox ID="DiaChiKHTextBox" runat="server" Text='<%# Bind("DiaChiKH") %>' />
                <br />
                DienThoaiKH:
                <asp:TextBox ID="DienThoaiKHTextBox" runat="server" Text='<%# Bind("DienThoaiKH") %>' />
                <br />
                NgaySinh:
                <asp:TextBox ID="NgaySinhTextBox" runat="server" Text='<%# Bind("NgaySinh") %>' />
                <br />
                GioiTinh:
                <asp:CheckBox ID="GioiTinhCheckBox" runat="server" Checked='<%# Bind("GioiTinh") %>' />
                <br />
                Email:
                <asp:TextBox ID="EmailTextBox" runat="server" Text='<%# Bind("Email") %>' />
                <br />
                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
                &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </EditItemTemplate>
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <InsertItemTemplate>
                HoTenKH:
                <asp:TextBox ID="HoTenKHTextBox" runat="server" Text='<%# Bind("HoTenKH") %>' />
                <br />
                DiaChiKH:
                <asp:TextBox ID="DiaChiKHTextBox" runat="server" Text='<%# Bind("DiaChiKH") %>' />
                <br />
                DienThoaiKH:
                <asp:TextBox ID="DienThoaiKHTextBox" runat="server" Text='<%# Bind("DienThoaiKH") %>' />
                <br />
                NgaySinh:
                <asp:TextBox ID="NgaySinhTextBox" runat="server" Text='<%# Bind("NgaySinh") %>' />
                <br />
                GioiTinh:
                <asp:CheckBox ID="GioiTinhCheckBox" runat="server" Checked='<%# Bind("GioiTinh") %>' />
                <br />
                Email:
                <asp:TextBox ID="EmailTextBox" runat="server" Text='<%# Bind("Email") %>' />
                <br />
                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
                &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </InsertItemTemplate>
            <ItemTemplate>
                <table style="width:100%;">
                  
                    <tr>
                        <td class="auto-style1">Họ và tên</td>
                        <td>
                            <asp:Label ID="HoTenKHLabel" runat="server" Text='<%# Bind("HoTenKH") %>' />
                        </td>
                    </tr>
                    <tr>
                        <td class="auto-style1">Địa chỉ</td>
                        <td>
                            <asp:Label ID="DiaChiKHLabel" runat="server" Text='<%# Bind("DiaChiKH") %>' />
                        </td>
                    </tr>
                    <tr>
                        <td class="auto-style1">Điện thoại</td>
                        <td>
                            <asp:Label ID="DienThoaiKHLabel" runat="server" Text='<%# Bind("DienThoaiKH") %>' />
                        </td>
                    </tr>
                    <tr>
                        <td class="auto-style1">Giới tính</td>
                        <td>
                              <asp:CheckBox ID="chkSex" runat="server" Checked='<%# Bind("Gioitinh") %>' />
                              <asp:Label ID="Label1" runat="server" Text='<%# (Eval("GioiTinh").ToString())=="True"? "Nam":"Nữ" %>'></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td class="auto-style1">Ngày sinh</td>
                        <td>
                            <asp:Label ID="NgaySinhLabel" runat="server" Text='<%# Bind("NgaySinh", "{0:d}") %>' />
                        </td>
                    </tr>
                    <tr>
                        <td class="auto-style1">Email</td>
                        <td>
                            <asp:Label ID="EmailLabel" runat="server" Text='<%# Bind("Email") %>' />
                        </td>
                    </tr>
                </table>
                <br />

            </ItemTemplate>
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
        </asp:FormView>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:QLBANSACH1ConnectionString %>" DeleteCommand="DELETE FROM [KHACHHANG] WHERE [MaKH] = @original_MaKH AND (([HoTenKH] = @original_HoTenKH) OR ([HoTenKH] IS NULL AND @original_HoTenKH IS NULL)) AND (([DiaChiKH] = @original_DiaChiKH) OR ([DiaChiKH] IS NULL AND @original_DiaChiKH IS NULL)) AND (([DienThoaiKH] = @original_DienThoaiKH) OR ([DienThoaiKH] IS NULL AND @original_DienThoaiKH IS NULL)) AND (([NgaySinh] = @original_NgaySinh) OR ([NgaySinh] IS NULL AND @original_NgaySinh IS NULL)) AND (([GioiTinh] = @original_GioiTinh) OR ([GioiTinh] IS NULL AND @original_GioiTinh IS NULL)) AND (([Email] = @original_Email) OR ([Email] IS NULL AND @original_Email IS NULL))" InsertCommand="INSERT INTO [KHACHHANG] ([HoTenKH], [DiaChiKH], [DienThoaiKH], [NgaySinh], [GioiTinh], [Email]) VALUES (@HoTenKH, @DiaChiKH, @DienThoaiKH, @NgaySinh, @GioiTinh, @Email)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [MaKH], [HoTenKH], [DiaChiKH], [DienThoaiKH], [NgaySinh], [GioiTinh], [Email] FROM [KHACHHANG]" UpdateCommand="UPDATE [KHACHHANG] SET [HoTenKH] = @HoTenKH, [DiaChiKH] = @DiaChiKH, [DienThoaiKH] = @DienThoaiKH, [NgaySinh] = @NgaySinh, [GioiTinh] = @GioiTinh, [Email] = @Email WHERE [MaKH] = @original_MaKH AND (([HoTenKH] = @original_HoTenKH) OR ([HoTenKH] IS NULL AND @original_HoTenKH IS NULL)) AND (([DiaChiKH] = @original_DiaChiKH) OR ([DiaChiKH] IS NULL AND @original_DiaChiKH IS NULL)) AND (([DienThoaiKH] = @original_DienThoaiKH) OR ([DienThoaiKH] IS NULL AND @original_DienThoaiKH IS NULL)) AND (([NgaySinh] = @original_NgaySinh) OR ([NgaySinh] IS NULL AND @original_NgaySinh IS NULL)) AND (([GioiTinh] = @original_GioiTinh) OR ([GioiTinh] IS NULL AND @original_GioiTinh IS NULL)) AND (([Email] = @original_Email) OR ([Email] IS NULL AND @original_Email IS NULL))">
            <DeleteParameters>
                <asp:Parameter Name="original_MaKH" Type="Int32" />
                <asp:Parameter Name="original_HoTenKH" Type="String" />
                <asp:Parameter Name="original_DiaChiKH" Type="String" />
                <asp:Parameter Name="original_DienThoaiKH" Type="String" />
                <asp:Parameter Name="original_NgaySinh" Type="DateTime" />
                <asp:Parameter Name="original_GioiTinh" Type="Boolean" />
                <asp:Parameter Name="original_Email" Type="String" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="HoTenKH" Type="String" />
                <asp:Parameter Name="DiaChiKH" Type="String" />
                <asp:Parameter Name="DienThoaiKH" Type="String" />
                <asp:Parameter Name="NgaySinh" Type="DateTime" />
                <asp:Parameter Name="GioiTinh" Type="Boolean" />
                <asp:Parameter Name="Email" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="HoTenKH" Type="String" />
                <asp:Parameter Name="DiaChiKH" Type="String" />
                <asp:Parameter Name="DienThoaiKH" Type="String" />
                <asp:Parameter Name="NgaySinh" Type="DateTime" />
                <asp:Parameter Name="GioiTinh" Type="Boolean" />
                <asp:Parameter Name="Email" Type="String" />
                <asp:Parameter Name="original_MaKH" Type="Int32" />
                <asp:Parameter Name="original_HoTenKH" Type="String" />
                <asp:Parameter Name="original_DiaChiKH" Type="String" />
                <asp:Parameter Name="original_DienThoaiKH" Type="String" />
                <asp:Parameter Name="original_NgaySinh" Type="DateTime" />
                <asp:Parameter Name="original_GioiTinh" Type="Boolean" />
                <asp:Parameter Name="original_Email" Type="String" />
            </UpdateParameters>
        </asp:SqlDataSource>
    
    </div>
    </form>
</body>
</html>

Thực thi trang web cho kết quả: