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 là 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 là 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" />
<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" />
<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ả: