<Cthuvien:ma>
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ên | Kiểu | Mặc định | Có thể có | Mục đích | Thuộc tính mới | Ghi chú |
|---|---|---|---|---|---|---|
| ten | string | Thông báo tên của ô khi xảy ra lỗi. Nếu không có sẽ lấyid | label | |||
| truot | string | Scroll ngang dọc theo màn hình | ||||
| rong | string | Số (px) | Độ rộng dropdown popup. Nếu không đặt sẽ lấy độ rộng của control | |||
| tc | string | C, T, A | Tính chất: C-Chi tiết, T-Tổng, A-Tất cả | |||
| Cten | bool | false | true/false | Có hiện cột tên trong dropdown gợi ý hay không | Không có ở BSSInput, chuyển qua BSSLke | |
| tdoG | bool | false | true/false | Tự động gắn toạ độ (lat,long) đối với ô nhập địa chỉ có map autocomplete | ||
| nguoiT | bool | false | true / false | Tự động viết hoa chữ cái đầu (dùng cho tên người) | ||
| kieu_chu | bool | false | true / false | Tự động đổi chữ viết hoa khi gõ | kieu_chu | |
| kieu_so | bool | false | true / false | Chỉ cho phép nhập số | type | |
| kieu_ma | bool | false | true / false | Bộ mã (format ký tự đặc biệt cho mã) | type | |
| co_dau | string | "C" | C: cho phép số âm K: không cho phép số âm | Cho phép nhập số âm hay không | allowNegative | |
| nhieu | bool | false | true / false | Cho phép nhập nhiều mã cách nhau | ||
| kt_xoa | string | "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 | ||
| nhap | bool | true | true / 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 | ||
| gtriDau | string | "" | Giá trị mặc định khi khởi tạo |
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 | Dù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) | |||
| ktra | string | Vd: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_list | string | Dùng để hiển thị danh sách gợi ý giống vớiktra. Nếu không khai báo sẽ lấyktra | Không có ở BSSInput, chuyển qua BSSLke | |||
| kieu_tim | string | M, T | Kiểu tìm trong của danh sách gợi ý: M-Theo mã, T-Theo tên | Không có ở BSSInput, chuyển qua BSSLke | ||
| hamXly | string | Tên hàm JS | Hà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 ý | |||
| hamTen | string | Tên hàm JS | Hà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:
| Attribute | Giá trị | Mô tả |
|---|---|---|
tenKieu | "ma" | Xác định loại control là mã. |
ten_goc | ID | Lưu ID gốc của control. |
ten | ten hoặc ID | Tên dùng cho thông báo/xử lý lỗi. |
onkeydown | xuong(event) | Xử lý điều hướng bàn phím. |
kt_xoa | Giá trịkt_xoa | Quy định kiểu xóa dữ liệu. |
Cten | C / K | Có hiển thị cột tên hay không. |
nhieu | C / K | Trạ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" />