Chuyển tới nội dung chính

<Cthuvien:roi>

thông tin

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ênKiểuMặc địnhCó thể cóMục đíchThuộc tính mớiGhi chú
idstringĐịnh danh của control
CssClassstring"css_gchu"Lớp CSS áp dụng cho controlNếu để trống, tự động gán là "css_gchu"

Chức năng​

TênKiểuMặc địnhCó thể cóMục đíchThuộc tính mớiGhi chú
f_tkhaostringURL pathĐường dẫn Form đích cần mở khi clickHệ thống tự động ResolveUrl trên server trước khi gắn vào onclick
guistringChuỗi tham số/giá trị truyền sang form đíchHàm client sẽ dùng form_P_TRA_GTRI(gui) để biên dịch tham số
dtuongstringID đối tượng sẽ nhận kết quả trả về từ form đíchTruyền cho form mở. Nếu để trống sẽ mặc định dùng biến "THAMSO"
hamstringTên hàm JSHàm callback tùy chỉnh sẽ được gọi thay vì mở formNếu có giá trị, JS sẽ eval(ham) và return luôn, không mở f_tkhao
dongboolfalsetrue/falseCó 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:

AttributeGiá trịMô tả
ten_gocIDLưu ID gốc của control.
classGiá trị CssClassTự động gán "css_gchu" nếu rỗng.
onclickP_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:

  1. dong: Trạng thái đóng ("C" nếu dong=true, ngược lại là "K").
  2. url: Đường dẫn sau khi gọi ResolveUrl(f_tkhao).
  3. gui: Giá trị thuộc tính gui.
  4. ham: Giá trị thuộc tính ham.
  5. id: ID của control hiện tại.
  6. dtuong: Giá trị thuộc tính dtuong.

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:

  1. 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ũ).
  2. Ưu tiên gọi hàm: Nếu tham số ham có giá trị, hệ thống sẽ chạy eval(ham) và kết thúc lệnh (nghĩa là bỏ qua phần mở form).
  3. Mở form (f_tkhao): Nếu tham số url rỗng, kết thúc lệnh. Nếu có cấu hình gui, gọi form_P_TRA_GTRI(gui) để lấy thực tế mảng tham số lưu vào a_gtri.
  4. Xử lý cờ đóng form: Nếu cờ dong là "C", mảng a_gtri sẽ được push thêm tín hiệu 'DONG' và window.name (tên popup hiện tại).
  5. Gửi dữ liệu qua form đích: Chuẩn bị mảng đóng gói a_gui = [dtuong, a_gtri] (nếu dtuong rỗng thì mặc định fallback về tên "THAMSO").
  6. 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>