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

<Cthuvien:ma>

thông tin

Controls thay thế: BSSInput

Mô tả​

<Cthuvien:ma là control nhập liệu chính của hệ thống, hỗ trợ các chức năng: lấy dữ liệu từ popup Form danh mục (f_tkhao), tìm kiếm/ tra cứu dữ liệu DB có gợi ý khi gõ(ktra, ham_list), và nhiều tùy chọn định dạng nhập liệu (số, chữ in hoa, ...). Control tự động tích hợp với GridX khi đặt trong lưới.

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ấyidlabel
truotstringScroll ngang dọc theo màn hình
rongstringSố (px)Độ rộng dropdown popup. Nếu không đặt sẽ lấy độ rộng của control
tcstringC, T, ATính chất: C-Chi tiết, T-Tổng, A-Tất cả
Ctenboolfalsetrue/falseCó hiện cột tên trong dropdown gợi ý hay khôngKhông có ở BSSInput, chuyển qua BSSLke
tdoGboolfalsetrue/falseTự động gắn toạ độ (lat,long) đối với ô nhập địa chỉ có map autocomplete
nguoiTboolfalsetrue / falseTự động viết hoa chữ cái đầu (dùng cho tên người)
kieu_chuboolfalsetrue / falseTự động đổi chữ viết hoa khi gõkieu_chu
kieu_soboolfalsetrue / falseChỉ cho phép nhập sốtype
kieu_maboolfalsetrue / falseBộ mã (format ký tự đặc biệt cho mã)type
co_daustring"C"C: cho phép số âm
K: không cho phép số âm
Cho phép nhập số âm hay khôngallowNegative
nhieuboolfalsetrue / falseCho phép nhập nhiều mã cách nhau
kt_xoastring"C"K: không bao giờ xóa
G: dùng cho mã
L: giữ khi làm mới form
X: làm mới form là xóa
Xóa khi làm mới form
nhapbooltruetrue / falseẤn nhập có lấy thông tin hay không (C/K ở client). Trong lướicss_G... tự động gán K
gtriDaustring""Giá trị mặc định khi khởi tạo

Chức năng​

TênKiểuMặc địnhCó thể cóMục đíchThuộc tính mớiGhi chú
f_tkhaostringURL pathDùng để tra cứu và chọn mã từ Form danh mục. Giá trị là đường dẫn đến form (mở bằng phím F1 hoặc click chuột phải)
ktrastringVd:bảng,mã,tên hoặc functionJSName()Dùng để hiển thị danh sách gợi ý. Giá trị là chuỗi config DB (bảng, trường mã, trường tên hiển thị) hoặc tên function, ví dụbhhd_2bTSO_HIEU(b_kieu, b_gtri, b_tc, b_hangKt, b_tu, b_den, b_xep) return { dong: number, tu: number, cs_lke: [{ma, ten}]}Không có ở BSSInput, chuyển qua BSSLke
ham_liststringDùng để hiển thị danh sách gợi ý giống vớiktra. Nếu không khai báo sẽ lấyktraKhông có ở BSSInput, chuyển qua BSSLke
kieu_timstringM, TKiểu tìm trong của danh sách gợi ý: M-Theo mã, T-Theo tênKhông có ở BSSInput, chuyển qua BSSLke
hamXlystringTên hàm JSHàm xử lý sau khi nhận giá trị từ tra cứu (f_tkhao) hoặc chọn từ danh sách gợi ý
hamTenstringTên hàm JSHàm lấy tên lấy/hiển thị tên (tooltip) tương ứng với mã khi người dùng hover (giữ Shift); nếu không có thì hệ thống tự gọi server theoktra.

Khởi tạo​

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

<Cthuvien:ma ID="ma_nv" runat="server" />

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"ma"Xác định loại control là mã.
ten_gocIDLưu ID gốc của control.
tenten hoặc IDTên dùng cho thông báo/xử lý lỗi.
onkeydownxuong(event)Xử lý điều hướng bàn phím.
kt_xoaGiá trịkt_xoaQuy định kiểu xóa dữ liệu.
CtenC / KCó hiển thị cột tên hay không.
nhieuC / KTrạng thái nhập nhiều mã khi render.

Nếu khai báo thêm các thuộc tính như ktra, ham_list, f_tkhao, hamTen, hamXly, guiId, kieu_so, kieu_chu, kieu_ma, tdoG, nguoiT, rong, truot, gtriDau, tc, control sẽ render thêm attribute tương ứng.

Ví dụ:

<Cthuvien:ma
ID="ma_nv"
runat="server"
ten="Mã nhân viên"
ktra="ns_tq_nhanvien,ma,ten"
f_tkhao="~/ns/td/ns_tq_nhanvien.aspx"
kieu_tim="M" />

Có thể render ra client dạng:

<input
id="ma_nv"
type="text"
tenKieu="ma"
ten_goc="ma_nv"
ten="Mã nhân viên"
ktra="ns_tq_nhanvien,ma,ten"
ham_list="ns_tq_nhanvien,ma,ten"
kieu_tim="M"
f_tkhao="/ns/td/ns_tq_nhanvien.aspx"
Cten="C"
nhieu="C"
kt_xoa="C"
nhap="C"
onmousedown="chuot(event)"
onmouseover="chuotHO(this,event)"
onmouseout="chuotUH()"
onkeyup="{form_LIST(event); ma_an(event);}"
onclick="form_LIST(event,'C');"
onkeydown="xuong(event)"
onchange="form_maValid(this)"
onfocus="contro_select(this);" />

Nếu control nằm trong GridX (CssClass bắt đầu bằng css_G), control sẽ render theo cơ chế của lưới:

<input
...
onblur="GridX_doiMauBF(event);"
onfocus="GridX_doiMauBF(event);"
onchange="GridX_hamUp(event)"
nhap="K"
/>

Nếu control nằm trong GridX, tức CssClass bắt đầu bằng css_G, nó sẽ:

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

Ví dụ​

Khai báo cơ bản

<Cthuvien:ma
ID="ma_nv"
runat="server"
ten="Mã nhân viên" />

Khai báo có form tham khảo

<Cthuvien:ma
ID="ma_nv"
runat="server"
ten="Mã nhân viên"
f_tkhao="~/ns/td/ns_tq_nhanvien.aspx" />

Khai báo có kiểm tra DB

<Cthuvien:ma
ID="ma_nv"
runat="server"
ten="Mã nhân viên"
ktra="ns_tq_nhanvien,ma,ten" />

Khai báo có danh sách gợi ý

<Cthuvien:ma
ID="ma_nv"
runat="server"
ten="Mã nhân viên"
ktra="ns_tq_nhanvien,ma,ten"
kieu_tim="M" />

Khai báo có hàm xử lý sau khi chọn mã

<Cthuvien:ma
ID="ma_nv"
runat="server"
ten="Mã nhân viên"
ktra="ns_tq_nhanvien,ma,ten"
hamXly="chonNhanVien" />

Khai báo chỉ cho nhập số

<Cthuvien:ma
ID="so_luong"
runat="server"
ten="Số lượng"
kieu_so="true" />

Khai báo tự động viết hoa

<Cthuvien:ma
ID="ma_hang"
runat="server"
ten="Mã hàng"
kieu_chu="true" />

Khai báo trong GridX

<asp:TemplateField HeaderText="Mã NV" HeaderStyle-Width="100px">
<ItemTemplate>
<Cthuvien:ma
ID="ma_nv"
runat="server"
Width="100px"
CssClass="css_Gma_c"
ktra="ns_tq_nhanvien,ma,ten" />
</ItemTemplate>
</asp:TemplateField>

Khai báo có gửi tham số từ control khác

<Cthuvien:ma
ID="ma_sp"
runat="server"
ten="Mã sản phẩm"
ktra="dm_sanpham,ma,ten"
guiId="ma_dv,ma_kho" />