Bài giảng lập trình Asp .NET làm việc với điều khiển
Trang 1Làm việc với các control (Working with controls)
Trình bày: Hà Đồng Hưng
Trang 2Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton, ImageButton),TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 3Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton, ImageButton), TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 4Server control khác HTML control
Server events Gây ra các sự kiện cụ thể của các control trên server. Chỉ có thể gây ra các sự kiện cấp độ page trên server
(post-back)
State
Management Dữ liệu nhập trong các control được duy trì xuyên suốt các yêu cầu trang
Dữ liệu không được duy trì;
phải được cất giữ và phục hồi bằng cách sử dụng kịch bản cấp
độ page
Adaptation Tự động phát hiện trình duyệt và điều biến trình bày thích hợp. Không tự động điều biến; phải viết code phát hiện trình duyệt
hoặc viết các mẫu chung
Properties
.NET Framework cung cấp tập hợp các thuộc tính cho mỗi control Các thuộc tính cho phép thay đổi các hành xử và trình bày của control trong mã server-side
Chỉ có các thuộc tính HTML
Trang 5Sử dụng HTML controls ???
Các lý do sử dụng HTML controls :
• Chuyển từ các phiên bản trước của ASP
• Không phải tất cả các controls đều đòi hỏi sự kiện phía Server hay quản lý trạng thái
– Điều này thực sự đặc biệt khi thực hiện kết dữ liệu Các mục kết
thường được làm mới lại từ nguồn dữ liệu với mỗi request, vì thế sẽ hiệu lực hơn khi thông tin trạng thái không duy trì cho các control kết dữ liệu. sử dụng HTML control hoặc tắt sự quản lý trạng thái của các server control kết dữ liệu.
• Bạn có đầy đủ các HTML control để dàn trang
Trang 6– <asp:TextBox id="txtText" runat="server"></asp:TextBox>
– <INPUT type="text" id="textfield1">
– <asp:Button id="btnShow" runat="server"
Text="Show"></asp:Button>
– <INPUT type="button" value="Show">
Trang 7Server Control và HTML Control
Trang 8Server Controls and HTML Controls
Nhóm các control Panel, Placeholder Flow Layout, Grid Layout
Làm việc với ngày
không (dùng cấp kịch bản trên trang)
Trang 9Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton,
ImageButton), TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 10Các control đơn giản
Label, Buttons, TextBox - HTML tags
Các control đơn giản
Label, Buttons, TextBox - HTML tags
• Label
– <asp:Label id="Label1" runat="server">Please input
text</asp:Label>
• Buttons (Button, LinkButton, ImageButton)
– <asp:Button id="Button1" runat="server"
Trang 11Các control đơn giản
Trang 12Các control đơn giản
Các thuộc tính chung
Các control đơn giản
Các thuộc tính chung
Text Lấy hoặc thiết lập dữ liệu trong TextBox
TextMode Trình bày đơn dòng SingleLine, đa dòng MultiLine (scrollable), hoặc mật khẩu Password
Enabled Bật/tắt tính khả dụng của TextBox
Visible Ẩn/hiện TextBox
ReadOnly Chỉ đọc, ngăn ngừa user thay đổi văn bản trên TextBox
AutoPostBack Khi giá trị là True, TextBox sẽ gây ra sự kiện post-back TextChanged khi user rời khỏi TextBox sau khi đã thay đổi nội
dung
• Label, Buttons
– Thuộc tính Text
• TextBox
Trang 13Kiểm tra lại các thuộc tính của Textbox
if(txtUser.Text == "Guest" && txtPassWord.Text == "Moon“)
Trang 14Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton, ImageButton), TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 15ListBox Trình bày văn bản chỉ đọc trọng một định dạng danh sách cuộn đơn.
DropDownList Trình bày văn bản chỉ đọc trong một định dạng danh sách xổ đơn giản.
Table Trình bày văn bản và các control theo cột và dòng Table cho phép xây dựng bảng động trong code bằng cách sử
dụng tập hợp TableRows và TableCells
Trang 16List Controls: HTML tags
Trang 18List Controls
Thêm các item lúc Run time
List Controls
Thêm các item lúc Run time
• ListBox and DropDownList:
– Chứa các item thêm vào lúc đang chạy (run time)
– Dùng phương thức Add của tập Items của control
– Chỉ chứa dữ liệu ở các ô tạo lúc design
– Để tạo thêm các dòng và các ô lúc run time, cần xây dụng lại bảng từ thông tin trong biên trạng thái
Trang 19List Controls
Lấy mục đã chọn (Selected Item)
List Controls
Lấy mục đã chọn (Selected Item)
• Dùng thuộc tính SelectedItem để lấy lựa
Trang 20Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton, ImageButton), TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 21Kết dữ liệu
Kết dữ liệu đơn giản
Kết dữ liệu
Kết dữ liệu đơn giản
• Kết dữ liệu với các control phổ biến (ngoại trừ DataList,
DataGrid, Repeater, Table)
• Thực hiện:
– 1 Định nghĩa nguồn dữ liệu (DataSource)
– 2 Gán nguồn dữ liệu vào thuộc tính DataSource
– 3 Gọi Page.DataBind() trong Page_Load
Trang 22Ví dụ
public String[] Arr = {"mot","hai"};
protected void Page_Load(object sender, EventArgs e)
Trang 23Kết dữ liệu
GridView, DataList, và Repeater
Kết dữ liệu
GridView, DataList, và Repeater
• Ba control này sử dụng các template (khuôn mẫu) để xác định hình
thức của chúng lúc thực thi (run time)
• Một template là một tập các phần tử HTML hoặc các server control,
hoặc cả hai, cái sẽ được lặp lại cho mỗi mục dữ liệu trong control
• Thực hiện:
– 1 Định nghĩa data source (nguồn dữ liệu).
– 2 Đặt control GridView, DataList, hoặc Repeater và kết với
DataSource.
– 3 Hiệu chỉnh template trong control để thêm các phần tử HTML
hoặc các server control sẽ được lặp lại bên trong list hay grid.
– 4 Thiết lập các thuộc tính của các server control chứa đựng trong
list hay grid để kết với các mục dữ liệu trong data source.
Trang 24Ghi chú
• Data source có thể là bất kỳ dữ liệu chung nào (public
data): một table của csdl, một mảng (array), một thuộc tính (property) của một đối tượng, hay một biểu thức kết hợp
các mục (item)
• Khi kết dữ liệu với một server control, có thể tắt sự quản lý
trạng thái cho control đó ( cải thiện thực thi vì phương thức
DataBind thay thế sự quản lý trạng thái (view state) được cung cấp bởi ASP.NET).
– Tắt sự quản lý trạng thái của server control bằng cách thiết
lập thuộc tính EnableViewState của control thành False.
Trang 25Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton, ImageButton), TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 26Các control kiểm tra tính hợp lệ
client trước khi page được posted back về server
RequiredFieldValidator Kiểm tra control chứa dữ liệu
CompareValidator Kiểm tra mục nhập vào khớp với mục nhập trong control khác
RangeValidator Kiểm tra mục nhập thuộc giữa 2 giá trị
RegularExpressionValidator Kiểm tra mục nhập vào khớp với định dạng xác định
CustomValidator Kiểm tra tính hợp lệ dữ liệu của mục nhập sử dụng kịch bản client-side script hay mã server-side, hay cả
hai
ValidationSummary Trình bày các lỗi về tính hợp lệ dữ liệu ở vị trí trung tâm hayr trình bày mô tả lõi về tính hợp lệ dữ liệu
tổng hợp
Trang 27Sử dụng các Validation Control
– Đặt validation control lên Web form và thiết lập thuộc tính
ControlToValidate là control muốn kiểm tra hợp lệ
– Thiết lập thuộc tính ErrorMessage
– Thiết lập thuộc tính Text
– Dùng control ValidationSummary để trình bày tất cả các
thông báo lỗi vào một nơi
Trang 28Ví dụ
• Set the validation control' s ErrorMessage
• Dùng một ValidationSummary control • Dùng control ValidationSummary với thuộc tính ShowMessage=True
Trang 29Giới thiệu VMWare Workstation 29
Hủy sự kiểm tra tính hợp lệ
– Cung cấp một nút Submit là HTML control
<INPUT id="butCancel" onclick="Page_ValidationActive=false;"
type="submit" value="Cancel">
– Nút submit được định nghĩa thực hiện hủy sự kiểm tra tính hợp
lệ và gửi page ngược về server
– Làm cho hiệu lực lại kiểm tra tính hợp lệ dữ liệu cho page
– Kiểm tra thuộc tính IsValid trong Page_Load
protected void Page_Load(object sender, EventArgs e) {
if (this.IsPostBack) {
Page.Validate();
if (!this.IsValid) {
Response.Redirect(“default.aspx");
Trang 30Tùy biến kiểm tra tính hợp lệ
server side và (tùy chọn) trên client side
– đặt mã kiểm tra tính hợp lệ trong trình sử lý sự kiện
ServerValidate
– Xác định một kịch bản kiểm tra tính hợp lệ trong thuộc tính
ClientValidationFunction
Trang 31Mục tiêu
• Server controls khác HTML controls
• Các control đơn giản
– Label, Buttons (Button, LinkButton, ImageButton), TextBox
– List Controls (ListBox, DropDownList, Table,DataGrid, DataList, Repeater )
• Kết dữ liệu với control
– Kết dữ liệu đơn giản – Kết dữ liệu với Cơ sở dữ liệu
• Các control kiểm tra tính hợp lệ
• Các control khác
Trang 32Các control khác
• Lấy và Thiết lập giá trị
– RadioButton, RadioButtonList, CheckBox, CheckBoxList
• Các control nhóm
– Panel
• Trình bày Đồ họa và Quảng cáo
– Background, Foreground, Image, AdRotator
• Lấy Ngày tháng
– Calendar
• Lấy File từ Client
– FileUpload
Trang 33• Use the Checked property to get the setting
protected void btnNut_Click(object sender, EventArgs e) {
if (CheckBox1.Checked) {
Response.Write("CheckBox1 is checked");
} }
• Các RadioButton phải có GroupName giống nhau
Trang 34Các Control khác:
Panel
Các Control khác:
Panel
control Panel
Trang 36Các Control khác:
Calendar
Các Control khác:
Calendar
• Dùng control Calendar để lấy
hoặc hiển thị thông tin ngày
tháng
• Để lấy hoặc thiết lập ngày
tháng được lựa chọn trên
Trang 37FileUpload để upload file
từ client lên server