249
Chương 7: ASP.NET và Web Form
Page.RegisterStartupScript("PopupScript", popupScript);
6.
6.
Thi t l p focus cho đi u ki m
ế ậ
ề
ể
Thi t l p focus cho đi u ki m
ế ậ
ề
ể
Bạn cần chỉ định điều kiểm nào sẽ nhận focus khi trang được trả về và gửi cho
người dùng.
Tạo một lệnh JavaScript để thiết lập focus, và thêm nó vào trang bằng phương
thức
Page.RegisterStartupScript
.
Điều kiểm web ASP.NET không cung cấp cách để thiết lập focus cho điều kiểm, mà chỉ cung
cấp thuộc tính
TabIndex
để thiết lập thứ tự tab. Nhưng thuộc tính này chỉ áp dụng cho
Microsoft Internet Explorer và không thể được sử dụng để thiết lập focus cho điều kiểm do
bạn chọn. Để vượt qua hạn chế này, bạn cần sử dụng đến mã JavaScript.
Phương thức dưới đây sẽ thực hiện công việc này. Nó nhận vào một tham chiếu đến bất kỳ đối
tượng điều kiểm nào, thu lấy
ClientID
kết giao (mã JavaScript phải sử dụng ID này để tìm
đến điều kiểm), rồi tạo dựng và đăng ký kịch bản để thiết lập focus.
private void SetFocus(Control ctrl) {
// Định nghĩa lệnh JavaScript.
// Di chuyển focus đến điều kiểm bạn muốn.
string setFocus = "<script language='javascript'>" +
"document.getElementById('" + ctrl.ClientID +
"').focus();</script>";
// Thêm mã JavaScript vào trang.
this.RegisterStartupScript("SetFocus", setFocus);
}
Nếu thêm phương thức này vào một Web Form, bạn có thể gọi
SetFocus
khi cần. Ví dụ dưới
đây sẽ thiết lập focus khi trang nạp lần đầu tiên:
private void Page_Load(object sender,
System.EventArgs e) {
if (!this.IsPostBack) {
// Chuyển focus đến một TextBox cụ thể.
SetFocus(TextBox1);
}
}