<Cthuvien:anh>
thông tin
Controls thay thế: <img> cơ bản hoặc BSSButton.
Mô tả
Cthuvien:anh là một control hiển thị hình ảnh qua thẻ <img> sử dụng như một nút bấm (button). Control tích hợp cơ chế chống spam click: nếu hệ thống đang xử lý.
Thuộc tính
Thuộc tính chung
| Tên | Kiểu | Mặc định | Có thể có | Mục đích | Thuộc tính mới | Ghi chú |
|---|---|---|---|---|---|---|
| src | string | Đường dẫn đến file hình ảnh | ||||
| Src | string | "" | URL / path ảnh | Đường dẫn tới file ảnh | ||
| Alt | string | "" | Chuỗi text | Văn bản thay thế khi ảnh không load hoặc dùng cho accessibility | ||
| Align | string | "" | left, right, center... | Căn chỉnh vị trí ảnh so với nội dung khác | ||
| Border | int | -1 | Số nguyên ≥ 0 | Độ dày viền của ảnh (px) | ||
| Height | int | -1 | Số nguyên ≥ 0 | Chiều cao của ảnh | ||
| Width | int | -1 | Số nguyên ≥ 0 | Chiều rộng của ảnh |
Chức năng
| Tên | Kiểu | Mặc định | Có thể có | Mục đích | Thuộc tính mới | Ghi chú |
|---|---|---|---|---|---|---|
| onclick | string | Mã JavaScript cần thực thi khi người dùng click vào ảnh | ||||
| hoi_xoa | string | Chuỗi cảnh báo/xác nhận hoặc cờ cấu hình hỏi trước khi thực hiện tác vụ | ||||
| giu | bool | true | Đặt cờ ngăn chặn click nhiều ảnh cùng lúc, nếu đang chạy hàm khác thì sẽ báo "Đang xử lý!" (sử dụng cơ chế form_chay) |
Khởi tạo
Quá trình render phía server (OnPreRender)
1. Gán Alt = "" (bất kể khai báo).
2. Nếu ID được đặt, gán ten_goc = ID lên thẻ HTML để JS nội bộ có thể tra cứu.
3. Nếu onclick được khai báo, bọc thêm logic chống spam:
if (form_Fb_CHAY()) {alert('Đang xử lý!'); return false;}
[nếu giu=true] form_chay=1;
<hàm onclick gốc>;
form_chay=0;
return false;
Khi giu = false, cờ form_chay không được bật, nghĩa là các control khác vẫn có thể chạy song song. Khi giu = true, cờ form_chay=1 được bật trước khi gọi hàm và tắt sau, ngăn mọi click khác trong suốt quá trình xử lý.
Ví dụ
Nút xóa có chống spam click
<Cthuvien:anh
ID="btnXoa"
runat="server"
Src="/images/delete.png"
giu="true"
onclick="return xoa_DL();" />
HTML render tương ứng:
<img
id="ctl00_MainContent_btnXoa"
src="/images/delete.png"
alt=""
ten_goc="btnXoa"
onclick="if (form_Fb_CHAY()) {alert('Đang xử lý!'); return false;}form_chay=1;return xoa_DL();; form_chay=0; return false;" />
Nút không giữ cờ (giu = false)
<Cthuvien:anh
ID="btnXem"
runat="server"
Src="/images/view.png"
onclick="xem_CT();" />
HTML render tương ứng (không có form_chay=1):
<img
id="ctl00_MainContent_btnXem"
src="/images/view.png"
alt=""
ten_goc="btnXem"
onclick="if (form_Fb_CHAY()) {alert('Đang xử lý!'); return false;}xem_CT();; form_chay=0; return false;" />
Ảnh trang trí (không có onclick)
<Cthuvien:anh
ID="imgLogo"
runat="server"
Src="/images/logo.png"
Width="120"
Height="40" />
Khi không khai báo onclick, không có logic chống spam nào được thêm vào:
<img
id="ctl00_MainContent_imgLogo"
src="/images/logo.png"
alt=""
width="120"
height="40"
ten_goc="imgLogo" />