SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Bài 6:
Điều khiển DetailsView, FormView, ListView, DataPager
Các nội dung đã học trong bài trước
ADO.NET
Điều khiển Data Source
Điều khiển DataList
Hệ thống bài cũ
Điều khiển DetailsView, FormView, ListView, DataPager 2
Mục tiêu bài học
1. Giới thiệu các điều khiển hiển thị dữ liệu
2. Điều khiển GridView
Điều khiển DetailsView, FormView, ListView, DataPager 3
2. Điều khiển GridView
3. Điều khiển DetailsView
Làm quen với lập trình CSDL ASP.NET 4
Các điều khiển hiển thị dữ liệu dưới dạng danh sách các
mẫu tin
Điều khiển hiển thị dữ liệu
Điều khiển Mô tả
DataList (đã học) - Trình bày dữ liệu dưới dạng danh sách
- Hiển thị theo các Template được định nghĩa
- Không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu,
ít khi dùng để cập nhật dữ liệu.
Điều khiển DetailsView, FormView, ListView, DataPager 5
- Trình bày dữ liệu dưới dạng danh sách
- Hiển thị theo các Template được định nghĩa
- Không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu,
ít khi dùng để cập nhật dữ liệu.
GridView -Trình bày dữ liệu dưới dạng bảng theo cột và hàng giống
bảng trong CSDL
- Hỗ trợ tính năng: Chọn, sắp xếp, cập nhật CSDL, phân
trang.
- Không hỗ trợ thêm dữ liệu vào CSDL
ListView - Chức năng cơ bản giống điều khiển GridView
- Khác: Cung cấp thêm tính năng chèn dữ liệu, hiển thị các
phần tử của datasource theo nhóm, có thể tùy chỉnh định
dạng hiển thị
Điều khiển hiển thị dữ liệu
Điều khiển GridView
Điều khiển DetailsView, FormView, ListView, DataPager 6
Điều khiển ListView
Hỗ trợ tính năng chèn dữ liệu
Không hỗ trợ tính năng chèn dữ liệu
Các điều khiển hiển thị một hàng dữ liệu đơn từ
datasoure
Điều khiển hiển thị dữ liệu
Điều khiển Mô tả
DetailsView - Hiển thị một hàng dữ liệu đơn từ datasource
- Hỗ trợ các tính năng thêm mới, cập nhật, phân trang
FormView - Chức năng cơ bản giống DetailsView
- Khác: Hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu,
chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu.
Điều khiển DetailsView, FormView, ListView, DataPager 7
- Chức năng cơ bản giống DetailsView
- Khác: Hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu,
chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu.
- Điều khiển DetailsView (trái) & FormView (phải)
- Khác nhau cơ bản: FormView hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu, chỉ sử
dụng Template và biểu thức buộc để hiển thị dữ liệu
Làm quen với lập trình CSDL ASP.NET 8
Điều khiển GridView hiển thị dữ liệu từ một nguồn dữ liệu
(datasource) dưới dạng bảng.
Cung cấp nhiều tính năng mở rộng:
Tự động phân trang
Tự động sắp xếp dữ liệu
Cho phép cập nhật, xóa dữ liệu
Điều khiển GridView
Điều khiển GridView hiển thị dữ liệu từ một nguồn dữ liệu
(datasource) dưới dạng bảng.
Cung cấp nhiều tính năng mở rộng:
Tự động phân trang
Tự động sắp xếp dữ liệu
Cho phép cập nhật, xóa dữ liệu
Làm quen với lập trình CSDL ASP.NET 9
Một ví dụ về điều khiển GridView
Mã aspx của điều khiển GridView
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" DataKeyNames="CategoryID"
DataSourceID="SqlDataSource1" ForeColor="Black"
onrowdeleted="GridView1_RowDeleted"
onrowupdated="GridView1_RowUpdated">
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="ID"
ReadOnly="True" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="100px" />
</asp:BoundField>
<%-- Đoạn mã của các trường khác được viết ở đây--%>
<asp:CommandField ButtonType="Button" CausesValidation="False"
ShowDeleteButton="True" />
</Columns>
<HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="White" ForeColor="Black" />
<AlternatingRowStyle BackColor="LightGray" ForeColor="Black" />
<EditRowStyle BackColor="#F46D11" ForeColor="White" />
</asp:GridView>
Các thuộc tính
của GridView
Làm quen với lập trình CSDL ASP.NET 10
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" DataKeyNames="CategoryID"
DataSourceID="SqlDataSource1" ForeColor="Black"
onrowdeleted="GridView1_RowDeleted"
onrowupdated="GridView1_RowUpdated">
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="ID"
ReadOnly="True" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="100px" />
</asp:BoundField>
<%-- Đoạn mã của các trường khác được viết ở đây--%>
<asp:CommandField ButtonType="Button" CausesValidation="False"
ShowDeleteButton="True" />
</Columns>
<HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="White" ForeColor="Black" />
<AlternatingRowStyle BackColor="LightGray" ForeColor="Black" />
<EditRowStyle BackColor="#F46D11" ForeColor="White" />
</asp:GridView>
Các phần tử
định nghĩa các
trường dữ liệu
Các phần tử
định nghĩa style
cho GridView
Các thuộc tính cơ bản của điều khiển GridView
Thuộc tính
Thuộc tính Mô tả
ID ID của điều khiển
RunAt Luôn được gán bằng Server
DataSourceID ID của DataSource liên kết với điều khiển
Điều khiển DetailsView, FormView, ListView, DataPager 11
DataSourceID ID của DataSource liên kết với điều khiển
DataKeyNames Tên của trường khóa chính. Nếu có nhiều cột,
các cột được phân tách bởi dấu phảy
AutoGenerateColumns Nếu bằng True, các cột được tự động sinh
SelectedIndex Truy xuất hoặc gán giá trị chỉ số của dòng dữ
liệu được chọn trên GridView
ASP.NET sử dụng phần tử trường để định nghĩa các cột
của GridView
Các loại phần tử trường
Trường dữ liệu
Phần tử Mô tả
Columns Các cột được hiển thị trên điều khiển GridView
Asp:BoundField Trường liên kết tới một cột của nguồn dữ liệu
Asp:ButtonField Trường hiển thị một button
Điều khiển DetailsView, FormView, ListView, DataPager 12
ID, Short Name, Long Name
và hai button Edit, Delete là các trường dữ liệu
Asp:ButtonField Trường hiển thị một button
Asp:CheckBoxField Trường hiển thị một CheckBox
Asp:CommandField Trường chứa các button Select, Update, Delete hoặc Cancel
Asp:HyperlinkField Trường hiển thị một hyperlink
Asp:ImageField Trường hiển thị ảnh
Asp:TemplateField Cho phép tạo cột với nội dung tùy biến
Các phần tử định nghĩa style
Phần tử định nghĩa style
Phần tử Mô tả
RowStyle Style của các hàng dữ liệu
AlternatingRowStyle Style của các hàng dữ liệu chẵn
Điều khiển DetailsView, FormView, ListView, DataPager 13
SelectedRowStyle Style của hàng được chọn
EditRowStyle Style được dùng khi hàng trong chế độ sửa
EmptyDataRowStyle Style khi datasource rỗng
ItemStyle Style sử dụng cho các trường riêng lẻ
HeaderStyle Style sử dụng để định dạng header
FooterStyle Style định dạng Footer
PageStyle Style định dạng phân trang
Chose Data Source, Configure Data
Source, Refresh: Giống chức năng
của điều khiển DataList
Edit Columns: Thêm/bớt, chỉnh sửa
các trường
Add New Column: Thêm một cột
mới
Menu thông minh
(Smart tag menu )
Chose Data Source, Configure Data
Source, Refresh: Giống chức năng
của điều khiển DataList
Edit Columns: Thêm/bớt, chỉnh sửa
các trường
Add New Column: Thêm một cột
mới
Điều khiển DetailsView, FormView, ListView, DataPager 14
Enable Paging: Kích hoạt tính năng
phân trang
Enable Sorting: Kích hoạt tính
năng tự động sắp xếp dữ liệu
Enable Editing, Enable Deleting,
Enable Selection: Thêm các button
edit, Delete, Select thuộc kiểu
trường command field
Edit Templates: Định nghĩa các
Template cho GridView
Smart tag menu
Enable Paging: Kích hoạt tính năng
phân trang
Enable Sorting: Kích hoạt tính
năng tự động sắp xếp dữ liệu
Enable Editing, Enable Deleting,
Enable Selection: Thêm các button
edit, Delete, Select thuộc kiểu
trường command field
Edit Templates: Định nghĩa các
Template cho GridView
Điều khiển DetailsView, FormView, ListView, DataPager 15
Ứng dụng một trang đơn giản, hiển
thị danh sách phân loại sản phẩm
trong bảng Categories
Cho phép thêm, sửa, xóa một phân
loại sản phẩm trong CSDL
Ứng dụng gồm:
Một điều khiển GridView gồm
Ba cột hiển thị thông tin phân loại sản
phẩm
Hai cột chứa button Edit và Delete
Các điều khiển nhập mới thông tin
phân loại sản phẩm
Các text box và button Add New
Category
Giới thiệu ứng dụng CategoryMaint
Ứng dụng một trang đơn giản, hiển
thị danh sách phân loại sản phẩm
trong bảng Categories
Cho phép thêm, sửa, xóa một phân
loại sản phẩm trong CSDL
Ứng dụng gồm:
Một điều khiển GridView gồm
Ba cột hiển thị thông tin phân loại sản
phẩm
Hai cột chứa button Edit và Delete
Các điều khiển nhập mới thông tin
phân loại sản phẩm
Các text box và button Add New
Category
Làm quen với lập trình CSDL ASP.NET 16
Nội dung demo:
Liên kết GridView và DataSource
Thêm một điều khiển GridView
Thêm và cấu hình DataSource cho điều khiển GridView
Thêm/bớt, tùy chỉnh định nghĩa các trường
Thêm hai button Edit & Delete cho ứng dụng
Định nghĩa Style
Định dạng hiển thị cho HeaderStyle, AlternatingRowStyle,
ItemRowStyle, SelectedRowStyle.
Demo
Hiển thị dữ liệu trên GridView
Nội dung demo:
Liên kết GridView và DataSource
Thêm một điều khiển GridView
Thêm và cấu hình DataSource cho điều khiển GridView
Thêm/bớt, tùy chỉnh định nghĩa các trường
Thêm hai button Edit & Delete cho ứng dụng
Định nghĩa Style
Định dạng hiển thị cho HeaderStyle, AlternatingRowStyle,
ItemRowStyle, SelectedRowStyle.
Điều khiển DetailsView, FormView, ListView, DataPager 17
Liên kết GridView và DataSource
Kéo điều khiển GridView từ Toolbox vào màn hình thiết kế
Mở smart tag menu, Ở mục Chose data source chọn New
data Source và tiến hành các bước cấu hình DataSource như
đã học.
Mặc định sau khi cấu hình data source, GridView được tạo ra
chứa tất cả các cột của datasource.
Demo
Hiển thị dữ liệu trên GridView
Liên kết GridView và DataSource
Kéo điều khiển GridView từ Toolbox vào màn hình thiết kế
Mở smart tag menu, Ở mục Chose data source chọn New
data Source và tiến hành các bước cấu hình DataSource như
đã học.
Mặc định sau khi cấu hình data source, GridView được tạo ra
chứa tất cả các cột của datasource.
Làm quen với lập trình CSDL ASP.NET 18
Thêm bớt, tùy chỉnh định nghĩa các trường
Sử dụng hộp thoại Fields để định nghĩa các trường
Mở hộp thoại Fields
Vào smart tag menu. Chọn Edit Columns
Thêm trường CommandField Edit, Update, Cancel và Delete
cho GridView
Demo
Hiển thị dữ liệu trên GridView
- Các trường có sẵn để thêm
vào GridView
- Danh sách thuộc tính của
trường được chọn ở mục
Selected Field
Làm quen với lập trình CSDL ASP.NET 19
- Các trường có sẵn để thêm
vào GridView
- Danh sách thuộc tính của
trường được chọn ở mục
Selected Field
- Các trường đã được thêm
vào GridView
Thuộc tính Mô tả
HeaderText Dòng tiêu đề của bảng
DataField Tên cột của nguồn dữ liệu bị
buộc vào trường này
DataFormatString Chuỗi định dạng hiển thị dữ
liệu
Các thuộc tính thường dùng của trường
dữ liệu.
Sinh viên tham khảo thêm các thuộc tính
khác trong SGK
Định nghĩa Style
Mở cửa sổ Properties của GridView
Mở rộng các mục style và chỉ định giá trị cho các thuộc tính
BackColor, ForeColor…
Demo
Hiển thị dữ liệu trên GridView
Điều khiển DetailsView, FormView, ListView, DataPager 20
Mã aspx của điều khiển GridView
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" DataKeyNames="CategoryID"
DataSourceID="SqlDataSource1" ForeColor="Black"
onrowdeleted="GridView1_RowDeleted"
onrowupdated="GridView1_RowUpdated">
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="ID"
ReadOnly="True" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="100px" />
</asp:BoundField>
<%-- Đoạn mã của các trường khác được viết ở đây--%>
<asp:CommandField ButtonType="Button" CausesValidation="False"
ShowDeleteButton="True" />
</Columns>
<HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="White" ForeColor="Black" />
<AlternatingRowStyle BackColor="LightGray" ForeColor="Black" />
<EditRowStyle BackColor="#F46D11" ForeColor="White" />
</asp:GridView>
Các thuộc tính
của GridView
Làm quen với lập trình CSDL ASP.NET 21
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" DataKeyNames="CategoryID"
DataSourceID="SqlDataSource1" ForeColor="Black"
onrowdeleted="GridView1_RowDeleted"
onrowupdated="GridView1_RowUpdated">
<Columns>
<asp:BoundField DataField="CategoryID" HeaderText="ID"
ReadOnly="True" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="100px" />
</asp:BoundField>
<%-- Đoạn mã của các trường khác được viết ở đây--%>
<asp:CommandField ButtonType="Button" CausesValidation="False"
ShowDeleteButton="True" />
</Columns>
<HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="White" ForeColor="Black" />
<AlternatingRowStyle BackColor="LightGray" ForeColor="Black" />
<EditRowStyle BackColor="#F46D11" ForeColor="White" />
</asp:GridView>
Các phần tử
định nghĩa các
trường dữ liệu
Các phần tử
định nghĩa style
cho GridView
Một tính năng ấn tượng của điều khiển GridView là
cập nhật, xóa dữ liệu từ CSDL mà chỉ cần thêm rất
ít mã C#
GridView không hỗ trợ thao tác chèn
Các bước tạo GridView có thể cập nhật CSDL
Tạo các trường command field chứa các button Update,
Delete, Edit…
Cấu hình các câu lệnh Update, Delete, Insert cho
datasource
Kiểm soát lỗi thao tác CSDL bằng cách viết mã xử lý sự
kiện RowUpdated, RowDeleted
Thêm/cập nhật/xóa dữ liệu
Một tính năng ấn tượng của điều khiển GridView là
cập nhật, xóa dữ liệu từ CSDL mà chỉ cần thêm rất
ít mã C#
GridView không hỗ trợ thao tác chèn
Các bước tạo GridView có thể cập nhật CSDL
Tạo các trường command field chứa các button Update,
Delete, Edit…
Cấu hình các câu lệnh Update, Delete, Insert cho
datasource
Kiểm soát lỗi thao tác CSDL bằng cách viết mã xử lý sự
kiện RowUpdated, RowDeleted
Làm quen với lập trình CSDL ASP.NET 22
Chọn Configure DataSource trong smart tag menu
Cấu hình câu lệnh Update,
Insert, Delete cho DataSource
Làm quen với lập trình CSDL ASP.NET 23
- Chọn check box này
- Câu lệnh Update, Insert,
Delete được tự sinh
Vì điều khiển GridView
không hỗ trợ thao tác thêm
dữ liệu vào CSDL
Để cung cấp tính năng này,
lập trình viên phải
Thêm các điều khiển cho
phép người dùng nhập dữ
liệu
Sử dụng phương thức
Insert của điều khiển
sqlDataSource để chèn
một hàng vào CSDL
Demo
thêm một hàng dữ liệu
Vì điều khiển GridView
không hỗ trợ thao tác thêm
dữ liệu vào CSDL
Để cung cấp tính năng này,
lập trình viên phải
Thêm các điều khiển cho
phép người dùng nhập dữ
liệu
Sử dụng phương thức
Insert của điều khiển
sqlDataSource để chèn
một hàng vào CSDL
Làm quen với lập trình CSDL ASP.NET 24
- Các điều khiển cho phép người dùng nhập dữ liệu
Demo
Thêm một hàng dữ liệu
protected void btnAdd_Click(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["CategoryID"].DefaultValue
= txtID.Text;
SqlDataSource1.InsertParameters["ShortName"].DefaultValue
= txtShortName.Text;
SqlDataSource1.InsertParameters["LongName"].DefaultValue
= txtLongName.Text;
try
{
SqlDataSource1.Insert();
txtID.Text = "";
txtShortName.Text = "";
txtLongName.Text = "";
}
catch (Exception ex)
{
lblError.Text = "A database error has occurred.<br /><br />" +
"Message: " + ex.Message;
}
}
Phương thức xử lý sự kiện btnAdd_Click thực hiện thao tác
chèn dữ liệu vào CSDL
Làm quen với lập trình CSDL ASP.NET 25
protected void btnAdd_Click(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["CategoryID"].DefaultValue
= txtID.Text;
SqlDataSource1.InsertParameters["ShortName"].DefaultValue
= txtShortName.Text;
SqlDataSource1.InsertParameters["LongName"].DefaultValue
= txtLongName.Text;
try
{
SqlDataSource1.Insert();
txtID.Text = "";
txtShortName.Text = "";
txtLongName.Text = "";
}
catch (Exception ex)
{
lblError.Text = "A database error has occurred.<br /><br />" +
"Message: " + ex.Message;
}
}
Thiết lập giá trị các tham số của điều khiển
SqlDataSource
Thực thi câu lệnh chèn dữ liệu vào CSDL
Demo
Cập nhật một hàng dữ liệu
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
if (e.Exception != null)
{
lblError.Text = "A database error has occurred.<br /><br />" +
"Message: " + e.Exception.Message;
e.ExceptionHandled = true;
e.KeepInEditMode = true;
}
else if (e.AffectedRows == 0)
{
lblError.Text = "Another user may have updated that category." +
"<br />Please try again.";
}
}
Làm quen với lập trình CSDL ASP.NET 26
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
if (e.Exception != null)
{
lblError.Text = "A database error has occurred.<br /><br />" +
"Message: " + e.Exception.Message;
e.ExceptionHandled = true;
e.KeepInEditMode = true;
}
else if (e.AffectedRows == 0)
{
lblError.Text = "Another user may have updated that category." +
"<br />Please try again.";
}
}
Demo
Xóa một hàng dữ liệu
protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
if (e.Exception != null)
{
lblError.Text = "A database error has occurred.<br /><br />" +
"Message: " + e.Exception.Message;
e.ExceptionHandled = true;
}
else if (e.AffectedRows == 0)
{
lblError.Text = "Another user may have updated that category." +
"<br />Please try again.";
}
}
Làm quen với lập trình CSDL ASP.NET 27
protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
if (e.Exception != null)
{
lblError.Text = "A database error has occurred.<br /><br />" +
"Message: " + e.Exception.Message;
e.ExceptionHandled = true;
}
else if (e.AffectedRows == 0)
{
lblError.Text = "Another user may have updated that category." +
"<br />Please try again.";
}
}
TemplateField cung cấp nhiều tính năng kiểm soát hiển
thị của các trường của GridView
Mặc định, ở chế độ Update, các trường của GridView hiển
thị là text box hoặc Label (trường khóa chính CSDL)
Sử dụng Template, lập trình viên có thể
Cấu hình cho các trường là các điều khiển web server khác
như: drop-down list, list box….
Thêm các điều khiển ràng buộc cho các trường.
Sử dụng Template
TemplateField cung cấp nhiều tính năng kiểm soát hiển
thị của các trường của GridView
Mặc định, ở chế độ Update, các trường của GridView hiển
thị là text box hoặc Label (trường khóa chính CSDL)
Sử dụng Template, lập trình viên có thể
Cấu hình cho các trường là các điều khiển web server khác
như: drop-down list, list box….
Thêm các điều khiển ràng buộc cho các trường.
Điều khiển DetailsView, FormView, ListView, DataPager 28
Label
Textbox
Chuyển BoundField thành TemplateField
Sử dụng hộp thoại Fields
Nhấn chuột vào Convert this field into a templateField để
chuyển trường Bound Field thành Template Field.
Định nghĩa, thêm các điều khiển cho các Template
Mở smart tag menu. Chọn Edit Template.
Thao tác giống như Data List
Demo
Sử dụng Template Field
Chuyển BoundField thành TemplateField
Sử dụng hộp thoại Fields
Nhấn chuột vào Convert this field into a templateField để
chuyển trường Bound Field thành Template Field.
Định nghĩa, thêm các điều khiển cho các Template
Mở smart tag menu. Chọn Edit Template.
Thao tác giống như Data List
Điều khiển DetailsView, FormView, ListView, DataPager 29
Làm quen với lập trình CSDL ASP.NET 30
Điều khiển DetailsView được thiết kế để hiển thị một
hàng dữ liệu đơn của một datasource
Hỗ trợ các tính năng:
Phân trang
Cập nhật, thêm mới, xóa một hàng trong CSDL
Điều khiển DetailsView
Điều khiển DetailsView được thiết kế để hiển thị một
hàng dữ liệu đơn của một datasource
Hỗ trợ các tính năng:
Phân trang
Cập nhật, thêm mới, xóa một hàng trong CSDL
Điều khiển DetailsView, FormView, ListView, DataPager 31
Điều khiển DetailsView hiển thị
thông tin chi tiết của một sản
phẩm
Điều khiển DetailsView
cung cấp ba chế độ
hiển thị
ReadOnly: Người dùng
chỉ có thể xem dữ liệu
Insert: Người dùng có
thể thao tác thêm mới
dữ liệu
Update: Người dùng có
thể thao tác cập nhật
dữ liệu
Lập trình viên có thể lập
trình cấu hình hiển thị
cho các chế độ này
Ba chế độ của DetailsView
Chế độ ReadOnly
Click vào Edit sẽ
chuyển sang chế
độ Update
Click vào New sẽ
chuyển sang chế
độ Insert
Điều khiển DetailsView
cung cấp ba chế độ
hiển thị
ReadOnly: Người dùng
chỉ có thể xem dữ liệu
Insert: Người dùng có
thể thao tác thêm mới
dữ liệu
Update: Người dùng có
thể thao tác cập nhật
dữ liệu
Lập trình viên có thể lập
trình cấu hình hiển thị
cho các chế độ này
Điều khiển DetailsView, FormView, ListView, DataPager 32
Chế độ Update Chế độ Insert
Các mục thường dùng trong
smart tag menu
Chức năng tương tự như chức
năng tương ứng của
GridViews
Smart tag menu
của điều khiển DetailsView
Các mục thường dùng trong
smart tag menu
Chức năng tương tự như chức
năng tương ứng của
GridViews
Điều khiển DetailsView, FormView, ListView, DataPager 33
Smart tag menu hỗ trợ cấu hình
DetailsView dễ dàng
Trang Maser/Details thường
dùng để trình bày thông tin
của hai bảng có quan hệ 1-
n
Điều khiển GridView thường
sử dụng kết hợp với điều
khiển danh sách & GridView
tạo thành trang
Master/Details
Trang Master/Details
Điều khiển GridView Điều khiển DetailsViewTrang Maser/Details thường
dùng để trình bày thông tin
của hai bảng có quan hệ 1-
n
Điều khiển GridView thường
sử dụng kết hợp với điều
khiển danh sách & GridView
tạo thành trang
Master/Details
Điều khiển DetailsView, FormView, ListView, DataPager 34
Điều khiển DetailsView hiển thị một hàng dữ liệu
đơn của một dataSource
Thuộc kiểu trang Master/Detail
Ứng dụng gồm
Một GridView hiển thị danh sách
các sản phẩm.
GridView chứa button Select cho
phép chọn từng sản phẩm trong
danh sách
Một DetailsView hiển thị thông tin
chi tiết của sản phẩm được chọn
DetailsView cho phép thêm mới,
cập nhật, xóa thông tin một sản
phẩm
Giới thiệu
ứng dụng ProductMaintDetailsView
Thuộc kiểu trang Master/Detail
Ứng dụng gồm
Một GridView hiển thị danh sách
các sản phẩm.
GridView chứa button Select cho
phép chọn từng sản phẩm trong
danh sách
Một DetailsView hiển thị thông tin
chi tiết của sản phẩm được chọn
DetailsView cho phép thêm mới,
cập nhật, xóa thông tin một sản
phẩm
Điều khiển DetailsView, FormView, ListView, DataPager 35
Ứng dụng ProductMaintDetailsView
Nội dung demo:
Hiển thị dữ liệu trên GridView
Tạo GridView.
Cấu hình DataSource cho GridView.
Thêm trường CommandField Select cho GridView
Chỉ định thuộc tính SelectedIndex = 0
Thực hiện tương tự như các bước đã học
Demo
tạo trang Master/Detail
Nội dung demo:
Hiển thị dữ liệu trên GridView
Tạo GridView.
Cấu hình DataSource cho GridView.
Thêm trường CommandField Select cho GridView
Chỉ định thuộc tính SelectedIndex = 0
Thực hiện tương tự như các bước đã học
Điều khiển DetailsView, FormView, ListView, DataPager 36
Nội dung demo
Hiển thị dữ liệu trên DetailsView
Tạo DetailsView. Cấu hình DataSource
Định nghĩa các trường
Kích hoạt tính năng phân trang
Định nghĩa các Style
Demo
tạo trang Master/Detail
Nội dung demo
Hiển thị dữ liệu trên DetailsView
Tạo DetailsView. Cấu hình DataSource
Định nghĩa các trường
Kích hoạt tính năng phân trang
Định nghĩa các Style
Điều khiển DetailsView, FormView, ListView, DataPager 37
Tạo DetailsView và cấu hình datasource
Kéo DetailsView từ Toolbox lên màn hình thiết kế. Gán giá
trị ID cho DetailsView
Mở smart tag menu. Tại mục Chose Data Source chọn
New Data Source để mở cửa sổ Data Configuration
Winzard
Cấu hình DataSource như các bước đã học
Demo
tạo trang Master/Detail
Tạo DetailsView và cấu hình datasource
Kéo DetailsView từ Toolbox lên màn hình thiết kế. Gán giá
trị ID cho DetailsView
Mở smart tag menu. Tại mục Chose Data Source chọn
New Data Source để mở cửa sổ Data Configuration
Winzard
Cấu hình DataSource như các bước đã học
Điều khiển DetailsView, FormView, ListView, DataPager 38
<asp:DetailsView ID="DetailsView2" runat="server"
DataSourceID="SqlDataSource2"
Height="50px" Width="125px">
</asp:DetailsView>
Định nghĩa các trường cho DetailsView
Tương tự như điều khiển GridView, để định nghĩa các
trường của DetailsView ta sử dụng cửa sổ Fields
Mở smart tag menu, chọn Edit Fields
Thêm các trường BoundField
Demo
tạo trang Master/Detail
Định nghĩa các trường cho DetailsView
Tương tự như điều khiển GridView, để định nghĩa các
trường của DetailsView ta sử dụng cửa sổ Fields
Mở smart tag menu, chọn Edit Fields
Thêm các trường BoundField
Điều khiển DetailsView, FormView, ListView, DataPager 39
Mã Aspx tự sinh của DetailsView
<asp:DetailsView ID="DetailsView2" runat="server" DataSourceID="SqlDataSource2"
Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="ProductID" HeaderText="ProductID"
ReadOnly="True"
SortExpression="ProductID" />
<asp:BoundField DataField="Name" HeaderText="Name"
SortExpression="Name" />
.
.
.
</Fields>
</asp:DetailsView>
Điều khiển DetailsView, FormView, ListView, DataPager 40
<asp:DetailsView ID="DetailsView2" runat="server" DataSourceID="SqlDataSource2"
Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="ProductID" HeaderText="ProductID"
ReadOnly="True"
SortExpression="ProductID" />
<asp:BoundField DataField="Name" HeaderText="Name"
SortExpression="Name" />
.
.
.
</Fields>
</asp:DetailsView>
Mỗi trường của DetailsView là phần tử con của phần tử
Fields
Sinh viên có thể tham khảo SGK để tìm hiểu các phần tử
con của phần tử Fields như
BoundField, ButtonField, CheckBoxField…
Ngoài mục đích hiển thị dữ liệu,
DetailsView còn sử dụng để sửa,
thêm mới và xóa dữ liệu từ
CSDL.
Các bước tạo DetailsView có thể
cập nhật CSDL
Thêm trường CommandField
Cấu hình câu lệnh Insert, Update,
Delete cho DataSource
Viết hàm xử lý sự kiện
Chèn và cập nhật
dữ liệu trên DetailsView
Ngoài mục đích hiển thị dữ liệu,
DetailsView còn sử dụng để sửa,
thêm mới và xóa dữ liệu từ
CSDL.
Các bước tạo DetailsView có thể
cập nhật CSDL
Thêm trường CommandField
Cấu hình câu lệnh Insert, Update,
Delete cho DataSource
Viết hàm xử lý sự kiện
Điều khiển DetailsView, FormView, ListView, DataPager 41
Thêm CommandField & cấu hình
Datasource
Để thêm trường CommandField cho
DetailsView
Mở smart tag menu chọn Add Field
Cấu hình câu lệnh Insert, Delete,
Update cho Datasource
Tương tự như điều khiển GridView
Demo
Chèn/cập nhật dữ liệu trên DetailsView
Thêm CommandField & cấu hình
Datasource
Để thêm trường CommandField cho
DetailsView
Mở smart tag menu chọn Add Field
Cấu hình câu lệnh Insert, Delete,
Update cho Datasource
Tương tự như điều khiển GridView
Điều khiển DetailsView, FormView, ListView, DataPager 42
-Chọn CommandField trong mục
Chose a field type
- Chọn kiểu button trong mục
Button type
-Chọn các button cần hiển thị
bằng cách tắt hoặc bật các
checkbox
<asp:CommandField ButtonType="Button"
ShowDeleteButton="True"
ShowEditButton="True"
ShowInsertButton="True" />
Viết hàm xử lý sự kiện
Tương tự điều khiển GridView, DetailViews cũng cung
cấp các sự kiện giúp lập trình viên kiểm tra ngoại lệ
và lỗi truy cập đồng thời cho CSDL.
Demo
Chèn/cập nhật dữ liệu trên DetailsView
protected void DetailsView1_ItemUpdated(
object sender, DetailsViewUpdatedEventArgs e)
{
if (e.Exception != null)
{
lblError.Text = "A database error has occurred. " +
"Message: " + e.Exception.Message;
e.ExceptionHandled = true;
e.KeepInEditMode = true;
}
else if (e.AffectedRows == 0)
lblError.Text = "Another user may have updated that product. " +
"Please try again.";
else
GridView1.DataBind();
}
Viết hàm xử lý sự kiện
Tương tự điều khiển GridView, DetailViews cũng cung
cấp các sự kiện giúp lập trình viên kiểm tra ngoại lệ
và lỗi truy cập đồng thời cho CSDL.
Điều khiển DetailsView, FormView, ListView, DataPager 43
protected void DetailsView1_ItemUpdated(
object sender, DetailsViewUpdatedEventArgs e)
{
if (e.Exception != null)
{
lblError.Text = "A database error has occurred. " +
"Message: " + e.Exception.Message;
e.ExceptionHandled = true;
e.KeepInEditMode = true;
}
else if (e.AffectedRows == 0)
lblError.Text = "Another user may have updated that product. " +
"Please try again.";
else
GridView1.DataBind();
}
Kiểm tra ngoại lệ
Kiểm tra lỗi truy cập đồng
thời
Gọi phương thức
DataBind để cập nhật dữ
liệu vừa sửa lên GridView
Phương thức xử lý sự kiện ItemUpdated của DetailsView
Mặc định các trường trong chế
độ Insert, Update hiển thị dưới
dạng textbox hoặc label (trường
khóa chính)
Lập trình viên có thể kiểm soát
hiển thị, thêm các điều khiển
vào các trường cho các chế độ này
sử dụng TemplateField
Để tạo TemplateField, sử dụng
hộp thoại Fields để chuyển các
trường BoundField thành
TemplateField
Sử dụng TemplateField
Giao diện Details ở chế độ Update với
các điều khiển Web Server
Mặc định các trường trong chế
độ Insert, Update hiển thị dưới
dạng textbox hoặc label (trường
khóa chính)
Lập trình viên có thể kiểm soát
hiển thị, thêm các điều khiển
vào các trường cho các chế độ này
sử dụng TemplateField
Để tạo TemplateField, sử dụng
hộp thoại Fields để chuyển các
trường BoundField thành
TemplateField
Điều khiển DetailsView, FormView, ListView, DataPager 44
Giao diện Details ở chế độ Update với
các điều khiển Web Server
Giao diện Details ở chế độ Insert với
các điều khiển Web Server
Chuyển trường BoundField
thành TemplateField
Mở smart tag menu, chọn
Edit Fields
Định nghĩa các trường
TemplateField
Tương tự DataList
Định nghĩa
TemplateField cho DetailsView
-Click vào tên trường
trong mục Selected
Fields
- Click vào Convert this
field into a
TemplateField
Chuyển trường BoundField
thành TemplateField
Mở smart tag menu, chọn
Edit Fields
Định nghĩa các trường
TemplateField
Tương tự DataList
Điều khiển DetailsView, FormView, ListView, DataPager 45
-Click vào tên trường
trong mục Selected
Fields
- Click vào Convert this
field into a
TemplateField
Các phần tử template của
DetailsView
Định nghĩa
TemplateField cho DetailsView
Phần tử Mô tả
ItemTemplate Template sử dụng cho một trường riêng lẻ
EditItemTemplate Template sử dụng cho các trường trong chế
độ Edit
Điều khiển DetailsView, FormView, ListView, DataPager 46
EditItemTemplate Template sử dụng cho các trường trong chế
độ Edit
InsertItemTemplate Template sử dụng cho các trường trong chế
độ Insert
HeaderTemplate Template sử dụng cho tiêu đề của các
trường
Nội dung demo. Định nghĩa TemplateField cho ứng dụng
ProductMaintDetailsView
Định nghĩa EditItemTemplate
Định nghĩa InsertItemTemplate
Demo
Định nghĩa TemplateField cho DetailsView
Nội dung demo. Định nghĩa TemplateField cho ứng dụng
ProductMaintDetailsView
Định nghĩa EditItemTemplate
Định nghĩa InsertItemTemplate
Điều khiển DetailsView, FormView, ListView, DataPager 47
Điều khiển ListView
Điều khiển FormView
Điều khiển DataPage
Các điều khiển tự học
Điều khiển ListView
Điều khiển FormView
Điều khiển DataPage
Điều khiển DetailsView, FormView, ListView, DataPager 48
Các điều khiển hiển thị dữ liệu
Điều khiển hiển thị dữ liệu dưới dạng danh sách
DataList: Hiển thị theo các template đã được định nghĩa,
không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu, ít
dùng để thêm, sửa, xóa dữ liệu
GridView: Hiển thị dưới dạng bảng gồm dòng và cột, hỗ trợ
phân trang, sắp xếp, cập nhật dữ liệu, không hỗ trợ chèn dữ
liệu
ListView: Cơ bản giống GridView, nhưn cung cấp thêm tính
năng chèn dữ liệu, hiển thị các phần tử của datasource theo
nhóm, có thể tùy chỉnh định dạng hiển thị
Tổng kết
Các điều khiển hiển thị dữ liệu
Điều khiển hiển thị dữ liệu dưới dạng danh sách
DataList: Hiển thị theo các template đã được định nghĩa,
không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu, ít
dùng để thêm, sửa, xóa dữ liệu
GridView: Hiển thị dưới dạng bảng gồm dòng và cột, hỗ trợ
phân trang, sắp xếp, cập nhật dữ liệu, không hỗ trợ chèn dữ
liệu
ListView: Cơ bản giống GridView, nhưn cung cấp thêm tính
năng chèn dữ liệu, hiển thị các phần tử của datasource theo
nhóm, có thể tùy chỉnh định dạng hiển thị
Điều khiển DetailsView, FormView, ListView, DataPager 49
Điều khiển hiển thị một hàng dữ liệu đơn từ datasource
DetailsView
FormView: Cơ bản giống DetailsView. Khác: Hỗ trợ sử dụng
CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và
biểu thức buộc để hiển thị dữ liệu.
Tổng kết
Điều khiển hiển thị một hàng dữ liệu đơn từ datasource
DetailsView
FormView: Cơ bản giống DetailsView. Khác: Hỗ trợ sử dụng
CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và
biểu thức buộc để hiển thị dữ liệu.
Điều khiển DetailsView, FormView, ListView, DataPager 50

Mais conteúdo relacionado

Mais procurados

BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTMasterCode.vn
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...MasterCode.vn
 
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnPdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnMasterCode.vn
 
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...MasterCode.vn
 
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...MasterCode.vn
 
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...MasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...MasterCode.vn
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVCMasterCode.vn
 
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTBài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTMasterCode.vn
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...MasterCode.vn
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýMasterCode.vn
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTMasterCode.vn
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...MasterCode.vn
 
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)MasterCode.vn
 
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPTBài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPTMasterCode.vn
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMasterCode.vn
 

Mais procurados (20)

BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
 
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnPdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
 
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
 
01 tong-quan-ado
01 tong-quan-ado01 tong-quan-ado
01 tong-quan-ado
 
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
 
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTBài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lý
 
Thuc hanh access
Thuc hanh accessThuc hanh access
Thuc hanh access
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
 
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
Bài 4: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)
 
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPTBài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
Bài 3 Làm việc với biểu mẫu nâng cao - Giáo trình FPT
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
 

Semelhante a Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager

Basic Views Drupal 7
Basic Views Drupal 7Basic Views Drupal 7
Basic Views Drupal 7Thanh Phạm
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nayledoanduc
 
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp0104 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01huynhtrong774129
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieutruong le hung
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbANHMATTROI
 
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPTBài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPTMasterCode.vn
 
bai_giang_access_phan_query.ppt
bai_giang_access_phan_query.pptbai_giang_access_phan_query.ppt
bai_giang_access_phan_query.pptTonc15
 
Giao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.netGiao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.netlove-dalat
 

Semelhante a Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager (20)

Basic Views Drupal 7
Basic Views Drupal 7Basic Views Drupal 7
Basic Views Drupal 7
 
C5. Model, DataSharing.pdf
C5. Model, DataSharing.pdfC5. Model, DataSharing.pdf
C5. Model, DataSharing.pdf
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nay
 
Ung dung web chuong 6
Ung dung web  chuong 6Ung dung web  chuong 6
Ung dung web chuong 6
 
ado.net
ado.netado.net
ado.net
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Ung dung web chuong 7
Ung dung web  chuong 7Ung dung web  chuong 7
Ung dung web chuong 7
 
Asp.net 3.5 _8
Asp.net 3.5 _8Asp.net 3.5 _8
Asp.net 3.5 _8
 
Grid view
Grid viewGrid view
Grid view
 
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp0104 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
04 chuong4-sapxeptimkiemlocdulieu-140404115538-phpapp01
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
C# co ban 10
C# co ban 10C# co ban 10
C# co ban 10
 
04 ado
04 ado04 ado
04 ado
 
Cập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vbCập nhật csdl ngay trên datagridview trong vb
Cập nhật csdl ngay trên datagridview trong vb
 
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPTBài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
Bài 2 Làm việc với biểu mẫu cơ bản - Giáo trình FPT
 
bai_giang_access_phan_query.ppt
bai_giang_access_phan_query.pptbai_giang_access_phan_query.ppt
bai_giang_access_phan_query.ppt
 
Giao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.netGiao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.net
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
 

Mais de MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 

Mais de MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 

Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager

  • 1. Bài 6: Điều khiển DetailsView, FormView, ListView, DataPager
  • 2. Các nội dung đã học trong bài trước ADO.NET Điều khiển Data Source Điều khiển DataList Hệ thống bài cũ Điều khiển DetailsView, FormView, ListView, DataPager 2
  • 3. Mục tiêu bài học 1. Giới thiệu các điều khiển hiển thị dữ liệu 2. Điều khiển GridView Điều khiển DetailsView, FormView, ListView, DataPager 3 2. Điều khiển GridView 3. Điều khiển DetailsView
  • 4. Làm quen với lập trình CSDL ASP.NET 4
  • 5. Các điều khiển hiển thị dữ liệu dưới dạng danh sách các mẫu tin Điều khiển hiển thị dữ liệu Điều khiển Mô tả DataList (đã học) - Trình bày dữ liệu dưới dạng danh sách - Hiển thị theo các Template được định nghĩa - Không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu, ít khi dùng để cập nhật dữ liệu. Điều khiển DetailsView, FormView, ListView, DataPager 5 - Trình bày dữ liệu dưới dạng danh sách - Hiển thị theo các Template được định nghĩa - Không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu, ít khi dùng để cập nhật dữ liệu. GridView -Trình bày dữ liệu dưới dạng bảng theo cột và hàng giống bảng trong CSDL - Hỗ trợ tính năng: Chọn, sắp xếp, cập nhật CSDL, phân trang. - Không hỗ trợ thêm dữ liệu vào CSDL ListView - Chức năng cơ bản giống điều khiển GridView - Khác: Cung cấp thêm tính năng chèn dữ liệu, hiển thị các phần tử của datasource theo nhóm, có thể tùy chỉnh định dạng hiển thị
  • 6. Điều khiển hiển thị dữ liệu Điều khiển GridView Điều khiển DetailsView, FormView, ListView, DataPager 6 Điều khiển ListView Hỗ trợ tính năng chèn dữ liệu Không hỗ trợ tính năng chèn dữ liệu
  • 7. Các điều khiển hiển thị một hàng dữ liệu đơn từ datasoure Điều khiển hiển thị dữ liệu Điều khiển Mô tả DetailsView - Hiển thị một hàng dữ liệu đơn từ datasource - Hỗ trợ các tính năng thêm mới, cập nhật, phân trang FormView - Chức năng cơ bản giống DetailsView - Khác: Hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu. Điều khiển DetailsView, FormView, ListView, DataPager 7 - Chức năng cơ bản giống DetailsView - Khác: Hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu. - Điều khiển DetailsView (trái) & FormView (phải) - Khác nhau cơ bản: FormView hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu
  • 8. Làm quen với lập trình CSDL ASP.NET 8
  • 9. Điều khiển GridView hiển thị dữ liệu từ một nguồn dữ liệu (datasource) dưới dạng bảng. Cung cấp nhiều tính năng mở rộng: Tự động phân trang Tự động sắp xếp dữ liệu Cho phép cập nhật, xóa dữ liệu Điều khiển GridView Điều khiển GridView hiển thị dữ liệu từ một nguồn dữ liệu (datasource) dưới dạng bảng. Cung cấp nhiều tính năng mở rộng: Tự động phân trang Tự động sắp xếp dữ liệu Cho phép cập nhật, xóa dữ liệu Làm quen với lập trình CSDL ASP.NET 9 Một ví dụ về điều khiển GridView
  • 10. Mã aspx của điều khiển GridView <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ForeColor="Black" onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated"> <Columns> <asp:BoundField DataField="CategoryID" HeaderText="ID" ReadOnly="True" > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle Width="100px" /> </asp:BoundField> <%-- Đoạn mã của các trường khác được viết ở đây--%> <asp:CommandField ButtonType="Button" CausesValidation="False" ShowDeleteButton="True" /> </Columns> <HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="White" ForeColor="Black" /> <AlternatingRowStyle BackColor="LightGray" ForeColor="Black" /> <EditRowStyle BackColor="#F46D11" ForeColor="White" /> </asp:GridView> Các thuộc tính của GridView Làm quen với lập trình CSDL ASP.NET 10 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ForeColor="Black" onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated"> <Columns> <asp:BoundField DataField="CategoryID" HeaderText="ID" ReadOnly="True" > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle Width="100px" /> </asp:BoundField> <%-- Đoạn mã của các trường khác được viết ở đây--%> <asp:CommandField ButtonType="Button" CausesValidation="False" ShowDeleteButton="True" /> </Columns> <HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="White" ForeColor="Black" /> <AlternatingRowStyle BackColor="LightGray" ForeColor="Black" /> <EditRowStyle BackColor="#F46D11" ForeColor="White" /> </asp:GridView> Các phần tử định nghĩa các trường dữ liệu Các phần tử định nghĩa style cho GridView
  • 11. Các thuộc tính cơ bản của điều khiển GridView Thuộc tính Thuộc tính Mô tả ID ID của điều khiển RunAt Luôn được gán bằng Server DataSourceID ID của DataSource liên kết với điều khiển Điều khiển DetailsView, FormView, ListView, DataPager 11 DataSourceID ID của DataSource liên kết với điều khiển DataKeyNames Tên của trường khóa chính. Nếu có nhiều cột, các cột được phân tách bởi dấu phảy AutoGenerateColumns Nếu bằng True, các cột được tự động sinh SelectedIndex Truy xuất hoặc gán giá trị chỉ số của dòng dữ liệu được chọn trên GridView
  • 12. ASP.NET sử dụng phần tử trường để định nghĩa các cột của GridView Các loại phần tử trường Trường dữ liệu Phần tử Mô tả Columns Các cột được hiển thị trên điều khiển GridView Asp:BoundField Trường liên kết tới một cột của nguồn dữ liệu Asp:ButtonField Trường hiển thị một button Điều khiển DetailsView, FormView, ListView, DataPager 12 ID, Short Name, Long Name và hai button Edit, Delete là các trường dữ liệu Asp:ButtonField Trường hiển thị một button Asp:CheckBoxField Trường hiển thị một CheckBox Asp:CommandField Trường chứa các button Select, Update, Delete hoặc Cancel Asp:HyperlinkField Trường hiển thị một hyperlink Asp:ImageField Trường hiển thị ảnh Asp:TemplateField Cho phép tạo cột với nội dung tùy biến
  • 13. Các phần tử định nghĩa style Phần tử định nghĩa style Phần tử Mô tả RowStyle Style của các hàng dữ liệu AlternatingRowStyle Style của các hàng dữ liệu chẵn Điều khiển DetailsView, FormView, ListView, DataPager 13 SelectedRowStyle Style của hàng được chọn EditRowStyle Style được dùng khi hàng trong chế độ sửa EmptyDataRowStyle Style khi datasource rỗng ItemStyle Style sử dụng cho các trường riêng lẻ HeaderStyle Style sử dụng để định dạng header FooterStyle Style định dạng Footer PageStyle Style định dạng phân trang
  • 14. Chose Data Source, Configure Data Source, Refresh: Giống chức năng của điều khiển DataList Edit Columns: Thêm/bớt, chỉnh sửa các trường Add New Column: Thêm một cột mới Menu thông minh (Smart tag menu ) Chose Data Source, Configure Data Source, Refresh: Giống chức năng của điều khiển DataList Edit Columns: Thêm/bớt, chỉnh sửa các trường Add New Column: Thêm một cột mới Điều khiển DetailsView, FormView, ListView, DataPager 14
  • 15. Enable Paging: Kích hoạt tính năng phân trang Enable Sorting: Kích hoạt tính năng tự động sắp xếp dữ liệu Enable Editing, Enable Deleting, Enable Selection: Thêm các button edit, Delete, Select thuộc kiểu trường command field Edit Templates: Định nghĩa các Template cho GridView Smart tag menu Enable Paging: Kích hoạt tính năng phân trang Enable Sorting: Kích hoạt tính năng tự động sắp xếp dữ liệu Enable Editing, Enable Deleting, Enable Selection: Thêm các button edit, Delete, Select thuộc kiểu trường command field Edit Templates: Định nghĩa các Template cho GridView Điều khiển DetailsView, FormView, ListView, DataPager 15
  • 16. Ứng dụng một trang đơn giản, hiển thị danh sách phân loại sản phẩm trong bảng Categories Cho phép thêm, sửa, xóa một phân loại sản phẩm trong CSDL Ứng dụng gồm: Một điều khiển GridView gồm Ba cột hiển thị thông tin phân loại sản phẩm Hai cột chứa button Edit và Delete Các điều khiển nhập mới thông tin phân loại sản phẩm Các text box và button Add New Category Giới thiệu ứng dụng CategoryMaint Ứng dụng một trang đơn giản, hiển thị danh sách phân loại sản phẩm trong bảng Categories Cho phép thêm, sửa, xóa một phân loại sản phẩm trong CSDL Ứng dụng gồm: Một điều khiển GridView gồm Ba cột hiển thị thông tin phân loại sản phẩm Hai cột chứa button Edit và Delete Các điều khiển nhập mới thông tin phân loại sản phẩm Các text box và button Add New Category Làm quen với lập trình CSDL ASP.NET 16
  • 17. Nội dung demo: Liên kết GridView và DataSource Thêm một điều khiển GridView Thêm và cấu hình DataSource cho điều khiển GridView Thêm/bớt, tùy chỉnh định nghĩa các trường Thêm hai button Edit & Delete cho ứng dụng Định nghĩa Style Định dạng hiển thị cho HeaderStyle, AlternatingRowStyle, ItemRowStyle, SelectedRowStyle. Demo Hiển thị dữ liệu trên GridView Nội dung demo: Liên kết GridView và DataSource Thêm một điều khiển GridView Thêm và cấu hình DataSource cho điều khiển GridView Thêm/bớt, tùy chỉnh định nghĩa các trường Thêm hai button Edit & Delete cho ứng dụng Định nghĩa Style Định dạng hiển thị cho HeaderStyle, AlternatingRowStyle, ItemRowStyle, SelectedRowStyle. Điều khiển DetailsView, FormView, ListView, DataPager 17
  • 18. Liên kết GridView và DataSource Kéo điều khiển GridView từ Toolbox vào màn hình thiết kế Mở smart tag menu, Ở mục Chose data source chọn New data Source và tiến hành các bước cấu hình DataSource như đã học. Mặc định sau khi cấu hình data source, GridView được tạo ra chứa tất cả các cột của datasource. Demo Hiển thị dữ liệu trên GridView Liên kết GridView và DataSource Kéo điều khiển GridView từ Toolbox vào màn hình thiết kế Mở smart tag menu, Ở mục Chose data source chọn New data Source và tiến hành các bước cấu hình DataSource như đã học. Mặc định sau khi cấu hình data source, GridView được tạo ra chứa tất cả các cột của datasource. Làm quen với lập trình CSDL ASP.NET 18
  • 19. Thêm bớt, tùy chỉnh định nghĩa các trường Sử dụng hộp thoại Fields để định nghĩa các trường Mở hộp thoại Fields Vào smart tag menu. Chọn Edit Columns Thêm trường CommandField Edit, Update, Cancel và Delete cho GridView Demo Hiển thị dữ liệu trên GridView - Các trường có sẵn để thêm vào GridView - Danh sách thuộc tính của trường được chọn ở mục Selected Field Làm quen với lập trình CSDL ASP.NET 19 - Các trường có sẵn để thêm vào GridView - Danh sách thuộc tính của trường được chọn ở mục Selected Field - Các trường đã được thêm vào GridView Thuộc tính Mô tả HeaderText Dòng tiêu đề của bảng DataField Tên cột của nguồn dữ liệu bị buộc vào trường này DataFormatString Chuỗi định dạng hiển thị dữ liệu Các thuộc tính thường dùng của trường dữ liệu. Sinh viên tham khảo thêm các thuộc tính khác trong SGK
  • 20. Định nghĩa Style Mở cửa sổ Properties của GridView Mở rộng các mục style và chỉ định giá trị cho các thuộc tính BackColor, ForeColor… Demo Hiển thị dữ liệu trên GridView Điều khiển DetailsView, FormView, ListView, DataPager 20
  • 21. Mã aspx của điều khiển GridView <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ForeColor="Black" onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated"> <Columns> <asp:BoundField DataField="CategoryID" HeaderText="ID" ReadOnly="True" > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle Width="100px" /> </asp:BoundField> <%-- Đoạn mã của các trường khác được viết ở đây--%> <asp:CommandField ButtonType="Button" CausesValidation="False" ShowDeleteButton="True" /> </Columns> <HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="White" ForeColor="Black" /> <AlternatingRowStyle BackColor="LightGray" ForeColor="Black" /> <EditRowStyle BackColor="#F46D11" ForeColor="White" /> </asp:GridView> Các thuộc tính của GridView Làm quen với lập trình CSDL ASP.NET 21 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID" DataSourceID="SqlDataSource1" ForeColor="Black" onrowdeleted="GridView1_RowDeleted" onrowupdated="GridView1_RowUpdated"> <Columns> <asp:BoundField DataField="CategoryID" HeaderText="ID" ReadOnly="True" > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle Width="100px" /> </asp:BoundField> <%-- Đoạn mã của các trường khác được viết ở đây--%> <asp:CommandField ButtonType="Button" CausesValidation="False" ShowDeleteButton="True" /> </Columns> <HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="White" ForeColor="Black" /> <AlternatingRowStyle BackColor="LightGray" ForeColor="Black" /> <EditRowStyle BackColor="#F46D11" ForeColor="White" /> </asp:GridView> Các phần tử định nghĩa các trường dữ liệu Các phần tử định nghĩa style cho GridView
  • 22. Một tính năng ấn tượng của điều khiển GridView là cập nhật, xóa dữ liệu từ CSDL mà chỉ cần thêm rất ít mã C# GridView không hỗ trợ thao tác chèn Các bước tạo GridView có thể cập nhật CSDL Tạo các trường command field chứa các button Update, Delete, Edit… Cấu hình các câu lệnh Update, Delete, Insert cho datasource Kiểm soát lỗi thao tác CSDL bằng cách viết mã xử lý sự kiện RowUpdated, RowDeleted Thêm/cập nhật/xóa dữ liệu Một tính năng ấn tượng của điều khiển GridView là cập nhật, xóa dữ liệu từ CSDL mà chỉ cần thêm rất ít mã C# GridView không hỗ trợ thao tác chèn Các bước tạo GridView có thể cập nhật CSDL Tạo các trường command field chứa các button Update, Delete, Edit… Cấu hình các câu lệnh Update, Delete, Insert cho datasource Kiểm soát lỗi thao tác CSDL bằng cách viết mã xử lý sự kiện RowUpdated, RowDeleted Làm quen với lập trình CSDL ASP.NET 22
  • 23. Chọn Configure DataSource trong smart tag menu Cấu hình câu lệnh Update, Insert, Delete cho DataSource Làm quen với lập trình CSDL ASP.NET 23 - Chọn check box này - Câu lệnh Update, Insert, Delete được tự sinh
  • 24. Vì điều khiển GridView không hỗ trợ thao tác thêm dữ liệu vào CSDL Để cung cấp tính năng này, lập trình viên phải Thêm các điều khiển cho phép người dùng nhập dữ liệu Sử dụng phương thức Insert của điều khiển sqlDataSource để chèn một hàng vào CSDL Demo thêm một hàng dữ liệu Vì điều khiển GridView không hỗ trợ thao tác thêm dữ liệu vào CSDL Để cung cấp tính năng này, lập trình viên phải Thêm các điều khiển cho phép người dùng nhập dữ liệu Sử dụng phương thức Insert của điều khiển sqlDataSource để chèn một hàng vào CSDL Làm quen với lập trình CSDL ASP.NET 24 - Các điều khiển cho phép người dùng nhập dữ liệu
  • 25. Demo Thêm một hàng dữ liệu protected void btnAdd_Click(object sender, EventArgs e) { SqlDataSource1.InsertParameters["CategoryID"].DefaultValue = txtID.Text; SqlDataSource1.InsertParameters["ShortName"].DefaultValue = txtShortName.Text; SqlDataSource1.InsertParameters["LongName"].DefaultValue = txtLongName.Text; try { SqlDataSource1.Insert(); txtID.Text = ""; txtShortName.Text = ""; txtLongName.Text = ""; } catch (Exception ex) { lblError.Text = "A database error has occurred.<br /><br />" + "Message: " + ex.Message; } } Phương thức xử lý sự kiện btnAdd_Click thực hiện thao tác chèn dữ liệu vào CSDL Làm quen với lập trình CSDL ASP.NET 25 protected void btnAdd_Click(object sender, EventArgs e) { SqlDataSource1.InsertParameters["CategoryID"].DefaultValue = txtID.Text; SqlDataSource1.InsertParameters["ShortName"].DefaultValue = txtShortName.Text; SqlDataSource1.InsertParameters["LongName"].DefaultValue = txtLongName.Text; try { SqlDataSource1.Insert(); txtID.Text = ""; txtShortName.Text = ""; txtLongName.Text = ""; } catch (Exception ex) { lblError.Text = "A database error has occurred.<br /><br />" + "Message: " + ex.Message; } } Thiết lập giá trị các tham số của điều khiển SqlDataSource Thực thi câu lệnh chèn dữ liệu vào CSDL
  • 26. Demo Cập nhật một hàng dữ liệu protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e) { if (e.Exception != null) { lblError.Text = "A database error has occurred.<br /><br />" + "Message: " + e.Exception.Message; e.ExceptionHandled = true; e.KeepInEditMode = true; } else if (e.AffectedRows == 0) { lblError.Text = "Another user may have updated that category." + "<br />Please try again."; } } Làm quen với lập trình CSDL ASP.NET 26 protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e) { if (e.Exception != null) { lblError.Text = "A database error has occurred.<br /><br />" + "Message: " + e.Exception.Message; e.ExceptionHandled = true; e.KeepInEditMode = true; } else if (e.AffectedRows == 0) { lblError.Text = "Another user may have updated that category." + "<br />Please try again."; } }
  • 27. Demo Xóa một hàng dữ liệu protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) { if (e.Exception != null) { lblError.Text = "A database error has occurred.<br /><br />" + "Message: " + e.Exception.Message; e.ExceptionHandled = true; } else if (e.AffectedRows == 0) { lblError.Text = "Another user may have updated that category." + "<br />Please try again."; } } Làm quen với lập trình CSDL ASP.NET 27 protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) { if (e.Exception != null) { lblError.Text = "A database error has occurred.<br /><br />" + "Message: " + e.Exception.Message; e.ExceptionHandled = true; } else if (e.AffectedRows == 0) { lblError.Text = "Another user may have updated that category." + "<br />Please try again."; } }
  • 28. TemplateField cung cấp nhiều tính năng kiểm soát hiển thị của các trường của GridView Mặc định, ở chế độ Update, các trường của GridView hiển thị là text box hoặc Label (trường khóa chính CSDL) Sử dụng Template, lập trình viên có thể Cấu hình cho các trường là các điều khiển web server khác như: drop-down list, list box…. Thêm các điều khiển ràng buộc cho các trường. Sử dụng Template TemplateField cung cấp nhiều tính năng kiểm soát hiển thị của các trường của GridView Mặc định, ở chế độ Update, các trường của GridView hiển thị là text box hoặc Label (trường khóa chính CSDL) Sử dụng Template, lập trình viên có thể Cấu hình cho các trường là các điều khiển web server khác như: drop-down list, list box…. Thêm các điều khiển ràng buộc cho các trường. Điều khiển DetailsView, FormView, ListView, DataPager 28 Label Textbox
  • 29. Chuyển BoundField thành TemplateField Sử dụng hộp thoại Fields Nhấn chuột vào Convert this field into a templateField để chuyển trường Bound Field thành Template Field. Định nghĩa, thêm các điều khiển cho các Template Mở smart tag menu. Chọn Edit Template. Thao tác giống như Data List Demo Sử dụng Template Field Chuyển BoundField thành TemplateField Sử dụng hộp thoại Fields Nhấn chuột vào Convert this field into a templateField để chuyển trường Bound Field thành Template Field. Định nghĩa, thêm các điều khiển cho các Template Mở smart tag menu. Chọn Edit Template. Thao tác giống như Data List Điều khiển DetailsView, FormView, ListView, DataPager 29
  • 30. Làm quen với lập trình CSDL ASP.NET 30
  • 31. Điều khiển DetailsView được thiết kế để hiển thị một hàng dữ liệu đơn của một datasource Hỗ trợ các tính năng: Phân trang Cập nhật, thêm mới, xóa một hàng trong CSDL Điều khiển DetailsView Điều khiển DetailsView được thiết kế để hiển thị một hàng dữ liệu đơn của một datasource Hỗ trợ các tính năng: Phân trang Cập nhật, thêm mới, xóa một hàng trong CSDL Điều khiển DetailsView, FormView, ListView, DataPager 31 Điều khiển DetailsView hiển thị thông tin chi tiết của một sản phẩm
  • 32. Điều khiển DetailsView cung cấp ba chế độ hiển thị ReadOnly: Người dùng chỉ có thể xem dữ liệu Insert: Người dùng có thể thao tác thêm mới dữ liệu Update: Người dùng có thể thao tác cập nhật dữ liệu Lập trình viên có thể lập trình cấu hình hiển thị cho các chế độ này Ba chế độ của DetailsView Chế độ ReadOnly Click vào Edit sẽ chuyển sang chế độ Update Click vào New sẽ chuyển sang chế độ Insert Điều khiển DetailsView cung cấp ba chế độ hiển thị ReadOnly: Người dùng chỉ có thể xem dữ liệu Insert: Người dùng có thể thao tác thêm mới dữ liệu Update: Người dùng có thể thao tác cập nhật dữ liệu Lập trình viên có thể lập trình cấu hình hiển thị cho các chế độ này Điều khiển DetailsView, FormView, ListView, DataPager 32 Chế độ Update Chế độ Insert
  • 33. Các mục thường dùng trong smart tag menu Chức năng tương tự như chức năng tương ứng của GridViews Smart tag menu của điều khiển DetailsView Các mục thường dùng trong smart tag menu Chức năng tương tự như chức năng tương ứng của GridViews Điều khiển DetailsView, FormView, ListView, DataPager 33 Smart tag menu hỗ trợ cấu hình DetailsView dễ dàng
  • 34. Trang Maser/Details thường dùng để trình bày thông tin của hai bảng có quan hệ 1- n Điều khiển GridView thường sử dụng kết hợp với điều khiển danh sách & GridView tạo thành trang Master/Details Trang Master/Details Điều khiển GridView Điều khiển DetailsViewTrang Maser/Details thường dùng để trình bày thông tin của hai bảng có quan hệ 1- n Điều khiển GridView thường sử dụng kết hợp với điều khiển danh sách & GridView tạo thành trang Master/Details Điều khiển DetailsView, FormView, ListView, DataPager 34 Điều khiển DetailsView hiển thị một hàng dữ liệu đơn của một dataSource
  • 35. Thuộc kiểu trang Master/Detail Ứng dụng gồm Một GridView hiển thị danh sách các sản phẩm. GridView chứa button Select cho phép chọn từng sản phẩm trong danh sách Một DetailsView hiển thị thông tin chi tiết của sản phẩm được chọn DetailsView cho phép thêm mới, cập nhật, xóa thông tin một sản phẩm Giới thiệu ứng dụng ProductMaintDetailsView Thuộc kiểu trang Master/Detail Ứng dụng gồm Một GridView hiển thị danh sách các sản phẩm. GridView chứa button Select cho phép chọn từng sản phẩm trong danh sách Một DetailsView hiển thị thông tin chi tiết của sản phẩm được chọn DetailsView cho phép thêm mới, cập nhật, xóa thông tin một sản phẩm Điều khiển DetailsView, FormView, ListView, DataPager 35 Ứng dụng ProductMaintDetailsView
  • 36. Nội dung demo: Hiển thị dữ liệu trên GridView Tạo GridView. Cấu hình DataSource cho GridView. Thêm trường CommandField Select cho GridView Chỉ định thuộc tính SelectedIndex = 0 Thực hiện tương tự như các bước đã học Demo tạo trang Master/Detail Nội dung demo: Hiển thị dữ liệu trên GridView Tạo GridView. Cấu hình DataSource cho GridView. Thêm trường CommandField Select cho GridView Chỉ định thuộc tính SelectedIndex = 0 Thực hiện tương tự như các bước đã học Điều khiển DetailsView, FormView, ListView, DataPager 36
  • 37. Nội dung demo Hiển thị dữ liệu trên DetailsView Tạo DetailsView. Cấu hình DataSource Định nghĩa các trường Kích hoạt tính năng phân trang Định nghĩa các Style Demo tạo trang Master/Detail Nội dung demo Hiển thị dữ liệu trên DetailsView Tạo DetailsView. Cấu hình DataSource Định nghĩa các trường Kích hoạt tính năng phân trang Định nghĩa các Style Điều khiển DetailsView, FormView, ListView, DataPager 37
  • 38. Tạo DetailsView và cấu hình datasource Kéo DetailsView từ Toolbox lên màn hình thiết kế. Gán giá trị ID cho DetailsView Mở smart tag menu. Tại mục Chose Data Source chọn New Data Source để mở cửa sổ Data Configuration Winzard Cấu hình DataSource như các bước đã học Demo tạo trang Master/Detail Tạo DetailsView và cấu hình datasource Kéo DetailsView từ Toolbox lên màn hình thiết kế. Gán giá trị ID cho DetailsView Mở smart tag menu. Tại mục Chose Data Source chọn New Data Source để mở cửa sổ Data Configuration Winzard Cấu hình DataSource như các bước đã học Điều khiển DetailsView, FormView, ListView, DataPager 38 <asp:DetailsView ID="DetailsView2" runat="server" DataSourceID="SqlDataSource2" Height="50px" Width="125px"> </asp:DetailsView>
  • 39. Định nghĩa các trường cho DetailsView Tương tự như điều khiển GridView, để định nghĩa các trường của DetailsView ta sử dụng cửa sổ Fields Mở smart tag menu, chọn Edit Fields Thêm các trường BoundField Demo tạo trang Master/Detail Định nghĩa các trường cho DetailsView Tương tự như điều khiển GridView, để định nghĩa các trường của DetailsView ta sử dụng cửa sổ Fields Mở smart tag menu, chọn Edit Fields Thêm các trường BoundField Điều khiển DetailsView, FormView, ListView, DataPager 39
  • 40. Mã Aspx tự sinh của DetailsView <asp:DetailsView ID="DetailsView2" runat="server" DataSourceID="SqlDataSource2" Height="50px" Width="125px"> <Fields> <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> . . . </Fields> </asp:DetailsView> Điều khiển DetailsView, FormView, ListView, DataPager 40 <asp:DetailsView ID="DetailsView2" runat="server" DataSourceID="SqlDataSource2" Height="50px" Width="125px"> <Fields> <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> . . . </Fields> </asp:DetailsView> Mỗi trường của DetailsView là phần tử con của phần tử Fields Sinh viên có thể tham khảo SGK để tìm hiểu các phần tử con của phần tử Fields như BoundField, ButtonField, CheckBoxField…
  • 41. Ngoài mục đích hiển thị dữ liệu, DetailsView còn sử dụng để sửa, thêm mới và xóa dữ liệu từ CSDL. Các bước tạo DetailsView có thể cập nhật CSDL Thêm trường CommandField Cấu hình câu lệnh Insert, Update, Delete cho DataSource Viết hàm xử lý sự kiện Chèn và cập nhật dữ liệu trên DetailsView Ngoài mục đích hiển thị dữ liệu, DetailsView còn sử dụng để sửa, thêm mới và xóa dữ liệu từ CSDL. Các bước tạo DetailsView có thể cập nhật CSDL Thêm trường CommandField Cấu hình câu lệnh Insert, Update, Delete cho DataSource Viết hàm xử lý sự kiện Điều khiển DetailsView, FormView, ListView, DataPager 41
  • 42. Thêm CommandField & cấu hình Datasource Để thêm trường CommandField cho DetailsView Mở smart tag menu chọn Add Field Cấu hình câu lệnh Insert, Delete, Update cho Datasource Tương tự như điều khiển GridView Demo Chèn/cập nhật dữ liệu trên DetailsView Thêm CommandField & cấu hình Datasource Để thêm trường CommandField cho DetailsView Mở smart tag menu chọn Add Field Cấu hình câu lệnh Insert, Delete, Update cho Datasource Tương tự như điều khiển GridView Điều khiển DetailsView, FormView, ListView, DataPager 42 -Chọn CommandField trong mục Chose a field type - Chọn kiểu button trong mục Button type -Chọn các button cần hiển thị bằng cách tắt hoặc bật các checkbox <asp:CommandField ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
  • 43. Viết hàm xử lý sự kiện Tương tự điều khiển GridView, DetailViews cũng cung cấp các sự kiện giúp lập trình viên kiểm tra ngoại lệ và lỗi truy cập đồng thời cho CSDL. Demo Chèn/cập nhật dữ liệu trên DetailsView protected void DetailsView1_ItemUpdated( object sender, DetailsViewUpdatedEventArgs e) { if (e.Exception != null) { lblError.Text = "A database error has occurred. " + "Message: " + e.Exception.Message; e.ExceptionHandled = true; e.KeepInEditMode = true; } else if (e.AffectedRows == 0) lblError.Text = "Another user may have updated that product. " + "Please try again."; else GridView1.DataBind(); } Viết hàm xử lý sự kiện Tương tự điều khiển GridView, DetailViews cũng cung cấp các sự kiện giúp lập trình viên kiểm tra ngoại lệ và lỗi truy cập đồng thời cho CSDL. Điều khiển DetailsView, FormView, ListView, DataPager 43 protected void DetailsView1_ItemUpdated( object sender, DetailsViewUpdatedEventArgs e) { if (e.Exception != null) { lblError.Text = "A database error has occurred. " + "Message: " + e.Exception.Message; e.ExceptionHandled = true; e.KeepInEditMode = true; } else if (e.AffectedRows == 0) lblError.Text = "Another user may have updated that product. " + "Please try again."; else GridView1.DataBind(); } Kiểm tra ngoại lệ Kiểm tra lỗi truy cập đồng thời Gọi phương thức DataBind để cập nhật dữ liệu vừa sửa lên GridView Phương thức xử lý sự kiện ItemUpdated của DetailsView
  • 44. Mặc định các trường trong chế độ Insert, Update hiển thị dưới dạng textbox hoặc label (trường khóa chính) Lập trình viên có thể kiểm soát hiển thị, thêm các điều khiển vào các trường cho các chế độ này sử dụng TemplateField Để tạo TemplateField, sử dụng hộp thoại Fields để chuyển các trường BoundField thành TemplateField Sử dụng TemplateField Giao diện Details ở chế độ Update với các điều khiển Web Server Mặc định các trường trong chế độ Insert, Update hiển thị dưới dạng textbox hoặc label (trường khóa chính) Lập trình viên có thể kiểm soát hiển thị, thêm các điều khiển vào các trường cho các chế độ này sử dụng TemplateField Để tạo TemplateField, sử dụng hộp thoại Fields để chuyển các trường BoundField thành TemplateField Điều khiển DetailsView, FormView, ListView, DataPager 44 Giao diện Details ở chế độ Update với các điều khiển Web Server Giao diện Details ở chế độ Insert với các điều khiển Web Server
  • 45. Chuyển trường BoundField thành TemplateField Mở smart tag menu, chọn Edit Fields Định nghĩa các trường TemplateField Tương tự DataList Định nghĩa TemplateField cho DetailsView -Click vào tên trường trong mục Selected Fields - Click vào Convert this field into a TemplateField Chuyển trường BoundField thành TemplateField Mở smart tag menu, chọn Edit Fields Định nghĩa các trường TemplateField Tương tự DataList Điều khiển DetailsView, FormView, ListView, DataPager 45 -Click vào tên trường trong mục Selected Fields - Click vào Convert this field into a TemplateField
  • 46. Các phần tử template của DetailsView Định nghĩa TemplateField cho DetailsView Phần tử Mô tả ItemTemplate Template sử dụng cho một trường riêng lẻ EditItemTemplate Template sử dụng cho các trường trong chế độ Edit Điều khiển DetailsView, FormView, ListView, DataPager 46 EditItemTemplate Template sử dụng cho các trường trong chế độ Edit InsertItemTemplate Template sử dụng cho các trường trong chế độ Insert HeaderTemplate Template sử dụng cho tiêu đề của các trường
  • 47. Nội dung demo. Định nghĩa TemplateField cho ứng dụng ProductMaintDetailsView Định nghĩa EditItemTemplate Định nghĩa InsertItemTemplate Demo Định nghĩa TemplateField cho DetailsView Nội dung demo. Định nghĩa TemplateField cho ứng dụng ProductMaintDetailsView Định nghĩa EditItemTemplate Định nghĩa InsertItemTemplate Điều khiển DetailsView, FormView, ListView, DataPager 47
  • 48. Điều khiển ListView Điều khiển FormView Điều khiển DataPage Các điều khiển tự học Điều khiển ListView Điều khiển FormView Điều khiển DataPage Điều khiển DetailsView, FormView, ListView, DataPager 48
  • 49. Các điều khiển hiển thị dữ liệu Điều khiển hiển thị dữ liệu dưới dạng danh sách DataList: Hiển thị theo các template đã được định nghĩa, không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu, ít dùng để thêm, sửa, xóa dữ liệu GridView: Hiển thị dưới dạng bảng gồm dòng và cột, hỗ trợ phân trang, sắp xếp, cập nhật dữ liệu, không hỗ trợ chèn dữ liệu ListView: Cơ bản giống GridView, nhưn cung cấp thêm tính năng chèn dữ liệu, hiển thị các phần tử của datasource theo nhóm, có thể tùy chỉnh định dạng hiển thị Tổng kết Các điều khiển hiển thị dữ liệu Điều khiển hiển thị dữ liệu dưới dạng danh sách DataList: Hiển thị theo các template đã được định nghĩa, không hỗ trợ phân trang, thường dùng để hiển thị dữ liệu, ít dùng để thêm, sửa, xóa dữ liệu GridView: Hiển thị dưới dạng bảng gồm dòng và cột, hỗ trợ phân trang, sắp xếp, cập nhật dữ liệu, không hỗ trợ chèn dữ liệu ListView: Cơ bản giống GridView, nhưn cung cấp thêm tính năng chèn dữ liệu, hiển thị các phần tử của datasource theo nhóm, có thể tùy chỉnh định dạng hiển thị Điều khiển DetailsView, FormView, ListView, DataPager 49
  • 50. Điều khiển hiển thị một hàng dữ liệu đơn từ datasource DetailsView FormView: Cơ bản giống DetailsView. Khác: Hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu. Tổng kết Điều khiển hiển thị một hàng dữ liệu đơn từ datasource DetailsView FormView: Cơ bản giống DetailsView. Khác: Hỗ trợ sử dụng CSS để định dạng hiển thị dữ liệu, chỉ sử dụng Template và biểu thức buộc để hiển thị dữ liệu. Điều khiển DetailsView, FormView, ListView, DataPager 50