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

<Cthuvien:thang>

thông tin

Controls thay thế: BSSCalendar

Mô tả​

<Cthuvien:thang> là control nhập liệu tháng/năm của hệ thống (kế thừa từ System.Web.UI.WebControls.TextBox, render <input type="text"> html).

Ô nhập chấp nhận định dạng tháng/năm mm/yyyy. Control tự gắn sự kiện bàn phím (onkeypress="thang_an(event)") để chỉ cho phép nhập ký tự số 0-9, chặn thao tác bôi đen text (onselectstart="return false;"), và tự động chèn dấu gạch chéo (/) khi người dùng gõ. Hỗ trợ 2 kiểu lưu kết quả vào CSDL (S - String, I - Int). Control cũng tự động tương thích với các sự kiện của GridX khi được đặ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ấy idlabel
kt_xoastring"K"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ưới css_G... tự động gán K
kieu_luuenumSS: String
I: Int
Kiểu định dạng lưu kết quả tháng/năm vào CSDL

Khởi tạo​

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

<Cthuvien:thang ID="txtThang" runat="server" kieu_luu="I" />

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"thang"Xác định loại control là thang.
ten_gocIDLưu ID gốc của control.
Tchange"K"Cờ nhận biết thay đổi giá trị. Sẽ được set thành C khi gõ trên client.
kieu_luuGiá trị của kieu_luuĐịnh dạng kết quả là S hoặc I.
kt_xoaGiá trị của kt_xoaQuy định trạng thái xóa nội dung khi form reset.
tenGiá trị của tenTên hiển thị khi có lỗi (dùng ID nếu rỗng).
onkeydownxuong(event);Xử lý điều hướng xuống bằng phím.
onkeypressthang_an(event);Tự động format thêm dấu / và loại bỏ ký tự chữ (chỉ cho phép nhập số).
onselectstartreturn false;Chặn thao tác bôi đen (select) text trong ô nhập liệu.

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), control sẽ bỏ qua các logic thông thường trên và tự động gắn 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)​

Hàm thang_an(b_event) phía client chịu trách nhiệm xử lý logic khi gõ phím (onkeypress):

  • Chặn ký tự: Bỏ qua nếu phím bấm không phải là ký tự số (0 đến 9). Bỏ qua cả các phím điều khiển (Ctrl + key).
  • Hủy select text: Chủ động bỏ bôi đen text trong ô để tránh lỗi đè ký tự không mong muốn.
  • Tự động format: Tính toán vị trí con trỏ và tự động tính chuỗi mới (hàm CH_CTH). Nếu vị trí gõ tương ứng với dấu /, tự động dịch con trỏ qua 1 ký tự.
  • Cập nhật trạng thái: Đổi thuộc tính Tchange thành "C" để ghi nhận sự thay đổi thực sự bởi người dùng.

Chức năng​

Kiểm tra dữ liệu​

Xử lý dữ liệu lưu​

Ví dụ​

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

<Cthuvien:thang
ID="txtThang"
runat="server"
kieu_luu="I"
ten="Tháng" />

Khai báo trong GridX:

<asp:TemplateField HeaderText="Tháng" HeaderStyle-Width="100px">
<ItemTemplate>
<Cthuvien:thang
ID="thang"
runat="server"
Width="100px"
CssClass="css_Gma_c"
kieu_luu="I" />
</ItemTemplate>
</asp:TemplateField>