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

<Cthuvien:nhom>

thông tin

Controls thay thế: BSSLke

Mô tả​

<Cthuvien:nhom> là control nhập/chọn nhóm giá trị (kế thừa từ System.Web.UI.WebControls.TextBox, render <input type="text"> html).

Khi người dùng click vào ô, hệ thống sẽ gọi script nhom_click(this) để xử lý việc chọn nhiều giá trị cùng lúc từ danh sách liệt kê lke (thông qua hàm F_DAO của framework). Control cũng hỗ trợ gõ phím tắt (onkeyup="nhom_an(event)") để đảo trạng thái, đồng thời hỗ trợ cập nhật động thông tin chú thích (cthich) của giá trị được chọn vào một nhãn/textbox khác (gchu). Control tự động tương thích với các sự kiện của lưới khi đặt trong GridX.

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ú
tenstringThông báo tên của ô khi xảy ra lỗi. Nếu không có sẽ lấy idlabel
nhapbooltruetrue / falseẤn nhập có lấy thông tin hay không (C/K ở client). Trong lưới css_G... tự động gán K
kieu_chuboolfalsetrue / falseĐổi giá trị nhập thành chữ in hoa hay không (C/K ở client)

Chức năng​

TênKiểuMặc địnhCó thể cóMục đíchThuộc tính mớiGhi chú
lkestringChuỗi cách nhau bởi dấu phẩyLiệt kê các giá trị hiển thị trong danh sách chọnRender ra client nếu có.
trastringChuỗi cách nhau bởi dấu phẩyGiá trị mã trả về tương ứng 1-1 với lkeRender ra client nếu có.
cthichstringChuỗi cách nhau bởi dấu phẩyLiệt kê chú thích/tooltip tương ứng 1-1 cho từng giá trị trong lkeDùng với JS client để đổ nội dung ra ô nhận (được khai báo attribute gchu)

Khởi tạo​

Control được khai báo trong file .aspx như một server control:

<Cthuvien:nhom ID="nhomQuyen" runat="server" lke="Xem,Sửa,Xóa,In" tra="V,E,D,P" ten="Nhóm quyền" />

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ả
tenKieu"nhom"Xác định loại control là chọn nhóm.
ten_gocIDLưu ID gốc của control.
kieu_chu"C" hoặc "K"Trạng thái bật/tắt in hoa.
lkeGiá trị lke(Chỉ render nếu lke khác rỗng).
traGiá trị tra(Chỉ render nếu lke khác rỗng và tra khác rỗng).
tenGiá trị của tenTên hiển thị khi có lỗi (dùng ID nếu rỗng).
onclicknhom_click(this);Xử lý click để mở danh sách chọn (hoặc đảo trạng thái).
onkeyupnhom_an(event);Lọc phím gõ để điều khiển phím tắt.
onkeydownxuong(event);Xử lý điều hướng xuống bằng bàn phím.

Nếu control không nằm trong GridX (không có CssClass bắt đầu bằng css_G):

  • nhap: "C" (nếu nhap=true) hoặc "K" (nếu nhap=false).
  • class: Nếu chưa khai báo CssClass, tự động gán mặc định là "css_ma".

Nếu control nằm trong GridX (CssClass bắt đầu bằng css_G), tự động áp dụng logic của lưới:

  • Gắn onblur="GridX_doiMauBF(event);"
  • Gắn onfocus="GridX_doiMauBF(event);"
  • Gắn onchange="GridX_hamUp(event)"
  • Gắn nhap="K"

Hoạt động phía Client (JavaScript)​

  • nhom_click(b_ctr): Xử lý sự kiện khi nhấp chuột vào ô.
    • Gọi hàm F_DAO('', b_ctr) của hệ thống để mở danh sách chọn.
    • Gọi hàm nhom_cthich(b_ctr) để tra cứu và hiển thị chú thích. Nếu có cấu hình attribute gchu (ID của ô ghi chú nhận kết quả trên client), và có chuỗi lke cũng như chuỗi cthich, nó sẽ tìm vị trí (index) của giá trị hiện tại trong lke và lấy giá trị ở vị trí tương ứng trong mảng cthich ra, dùng form_P_DatGchu gán vào control nhận gchu.
    • Cuối cùng gọi form_eventDay(b_ctr) cho luồng hệ thống.
  • nhom_an(b_event): Xử lý sự kiện nhả phím (onkeyup). Nếu phím gõ là ký tự đơn hợp lệ, nó sẽ chuyển tiếp phím gõ này cho hàm F_DAO(key, b_ctr) để tự động chọn giá trị tương ứng bằng phím tắt.

Ví dụ​

Khai báo thông thường:

<Cthuvien:nhom
ID="nhomQuyen"
runat="server"
lke="Xem,Sửa,Xóa,In"
tra="V,E,D,P"
ten="Nhóm quyền" />

Mã HTML sinh ra (Client):

<input
name="ctl00$MainContent$nhomQuyen"
type="text"
id="ctl00_MainContent_nhomQuyen"
class="css_ma"
tenKieu="nhom"
lke="Xem,Sửa,Xóa,In"
tra="V,E,D,P"
kieu_chu="K"
ten_goc="nhomQuyen"
ten="Nhóm quyền"
onclick="nhom_click(this);"
onkeyup="nhom_an(event);"
onkeydown="xuong(event);"
nhap="C" />