<Cthuvien:roi>
Controls thay thế: Đang chờ xác định... (Thường dùng thẻ Text/Link HTML kết hợp JS)
Mô tả
<Cthuvien:roi> là control nhãn liên kết (kế thừa từ System.Web.UI.WebControls.Label, render <span> html) thường được dùng để kích hoạt các hành động như mở form popup khác hoặc gọi hàm JavaScript nội bộ.
Khi người dùng click vào nhãn, hệ thống sẽ tự động gọi hàm client P_ROI(...). Hàm này hỗ trợ truyền tham số cho form đích, xác định đối tượng nhận kết quả trả về, và tùy chọn gửi lệnh đóng form hiện hành sau khi form đích được mở. Nếu thuộc tính ham (hàm JS) được cấu hình, nó sẽ ưu tiên thực thi hàm đó và bỏ qua việc mở form.
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ú |
|---|---|---|---|---|---|---|
| id | string | Định danh của control | ||||
| CssClass | string | "css_gchu" | Lớp CSS áp dụng cho control | Nếu để trống, tự động gán là "css_gchu" |
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ú |
|---|---|---|---|---|---|---|
| f_tkhao | string | URL path | Đường dẫn Form đích cần mở khi click | Hệ thống tự động ResolveUrl trên server trước khi gắn vào onclick | ||
| gui | string | Chuỗi tham số/giá trị truyền sang form đích | Hàm client sẽ dùng form_P_TRA_GTRI(gui) để biên dịch tham số | |||
| dtuong | string | ID đối tượng sẽ nhận kết quả trả về từ form đích | Truyền cho form mở. Nếu để trống sẽ mặc định dùng biến "THAMSO" | |||
| ham | string | Tên hàm JS | Hàm callback tùy chỉnh sẽ được gọi thay vì mở form | Nếu có giá trị, JS sẽ eval(ham) và return luôn, không mở f_tkhao | ||
| dong | bool | false | true/false | Có truyền cờ hiệu lệnh đóng form hiện tại hay không | "C" = Đóng, "K" = Không đóng |
Khởi tạo
Control được khai báo trong file .aspx như một server control:
<Cthuvien:roi
ID="roiChiTiet"
runat="server"
f_tkhao="~/bh/hd/bhhd_ct.aspx"
gui="HD001"
dtuong="txtMaHD" />
Trước khi render ra client, function OnPreRender sẽ tự động chuyển các thuộc tính server-side thành HTML attribute để JavaScript phía client xử lý.
Các attribute luôn được gắn:
| Attribute | Giá trị | Mô tả |
|---|---|---|
ten_goc | ID | Lưu ID gốc của control. |
class | Giá trị CssClass | Tự động gán "css_gchu" nếu rỗng. |
onclick | P_ROI('dong#url#gui#ham#id#dtuong') | Dữ liệu cấu hình được ghép thành 1 chuỗi phân cách bởi #. |
Cấu trúc chuỗi tham số truyền vào hàm P_ROI:
dong: Trạng thái đóng ("C"nếudong=true, ngược lại là"K").url: Đường dẫn sau khi gọiResolveUrl(f_tkhao).gui: Giá trị thuộc tínhgui.ham: Giá trị thuộc tínhham.id:IDcủa control hiện tại.dtuong: Giá trị thuộc tínhdtuong.
Hoạt động phía Client (JavaScript)
Khi người dùng click vào thẻ, hàm P_ROI(b_tso) sẽ phân tích chuỗi tham số phân cách bởi # để xử lý logic:
- Kiểm tra giới hạn: Kiểm tra ngày chặn cứng hệ thống (expire date logic hệ thống cũ).
- Ưu tiên gọi hàm: Nếu tham số
hamcó giá trị, hệ thống sẽ chạyeval(ham)và kết thúc lệnh (nghĩa là bỏ qua phần mở form). - Mở form (f_tkhao): Nếu tham số
urlrỗng, kết thúc lệnh. Nếu có cấu hìnhgui, gọiform_P_TRA_GTRI(gui)để lấy thực tế mảng tham số lưu vàoa_gtri. - Xử lý cờ đóng form: Nếu cờ
donglà"C", mảnga_gtrisẽ được push thêm tín hiệu'DONG'vàwindow.name(tên popup hiện tại). - Gửi dữ liệu qua form đích: Chuẩn bị mảng đóng gói
a_gui = [dtuong, a_gtri](nếudtuongrỗng thì mặc định fallback về tên"THAMSO"). - Bật form: Gọi hàm
form_P_MO(url, window.name + ',' + id, a_gui)để mở form đích (popup/tab) theo cơ chế của thư viện và truyền toàn bộ context dữ liệu qua.
Ví dụ
Khai báo thông thường:
<Cthuvien:roi
ID="roiChiTiet"
runat="server"
f_tkhao="~/bh/hd/bhhd_ct.aspx"
gui="HD001"
dtuong="txtMaHD"
Text="Xem chi tiết" />
Mã HTML sinh ra (Client):
<span
id="ctl00_MainContent_roiChiTiet"
class="css_gchu"
ten_goc="roiChiTiet"
onclick="P_ROI('K#/bh/hd/bhhd_ct.aspx#HD001##roiChiTiet#txtMaHD');">Xem chi tiết</span>