<Cthuvien:dao>
thông tin
Controls thay thế: BSSKieu
Mô tả
Cthuvien:dao là một control toggle/đảo trạng thái (kế thừa từ System.Web.UI.WebControls.Label, render thành thẻ <span>). Mỗi lần người dùng click, control sẽ tự động lật sang giá trị tiếp theo trong danh sách lke. Control đồng thời render kèm một thẻ <input type="hidden"> có hậu tố _hifi để lưu giá trị hiện tại phục vụ postback hoặc đọc dữ liệu phía client.
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ú |
|---|---|---|---|---|---|---|
| Text | string | Giá trị hiển thị ban đầu của control | Cũng được dùng làm giá trị khởi tạo cho trường ẩn _hifi | |||
| nhap | bool | false | true / false | Đánh dấu có lấy thông tin khi ấn nhập hay không (C/K ở client) | Chỉ render attribute nhap="C" khi là true; nếu false không render |
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ú |
|---|---|---|---|---|---|---|
| lke | string | Chuỗi cách nhau bằng dấu phẩy | Danh sách giá trị hiển thị mà control lần lượt lật qua khi click | |||
| tra | string | Chuỗi cách nhau bằng dấu phẩy | Giá trị thực tương ứng 1-1 với lke dùng để lưu trữ | Nếu không khai báo, mặc định bằng lke |
Khởi tạo
Quá trình render phía server
OnPreRender thực hiện tuần tự:
- Gán
tenKieu = "dao". - Nếu
nhap = true, gánnhap = "C"lên thẻ (nếufalsekhông gán). - Gán
lkelên thẻ. - Nếu
tracó giá trị, gántralên thẻ. - Gán
ten_goc = ID. - Gán
onclick = "P_DAO(this)". - Nếu
CssClasstrống, gán mặc địnhcss_gchu.
Render ghi thêm ngay sau thẻ <span> một hidden input:
<input type='hidden' name='[ClientID]_hifi' id='[ClientID]_hifi' Value='[Text]' />
Attributes render ra client:
| Attribute | Giá trị | Mô tả |
|---|---|---|
tenKieu | "dao" | Xác định loại control |
ten_goc | ID | ID gốc của control |
lke | Giá trị lke | Danh sách text hiển thị |
tra | Giá trị tra | Danh sách giá trị lưu (nếu có) |
nhap | "C" | Chỉ có khi nhap = true |
onclick | "P_DAO(this)" | Sự kiện click đảo giá trị |
Ví dụ
Khai báo thông thường:
<Cthuvien:dao ID="lblPhai" runat="server" lke="Nam,Nữ" tra="M,F" Text="Nam" nhap="true" />
Mã HTML sinh ra (Client):
<span id="ctl00_MainContent_lblPhai" class="css_gchu"
ten_goc="lblPhai"
tenKieu="dao"
nhap="C"
lke="Nam,Nữ"
tra="M,F"
onclick="P_DAO(this)">Nam</span>
<input type='hidden' name='ctl00_MainContent_lblPhai_hifi' id='ctl00_MainContent_lblPhai_hifi' Value='Nam' />
Không khai báo tra:
<Cthuvien:dao ID="lblTT" runat="server" lke="Có,Không" Text="Có" />
Vì không khai báo tra, attribute tra không được render lên thẻ. Hàm F_DAO sẽ dùng lke làm giá trị lưu trữ.
Đọc giá trị phía client:
// Đọc giá trị thực qua hidden input
var b_gtri = document.getElementById('ctl00_MainContent_lblPhai_hifi').value; // "M" hoặc "F"
// Đọc text đang hiển thị
var b_hien = document.getElementById('ctl00_MainContent_lblPhai').innerText; // "Nam" hoặc "Nữ"
Đọc giá trị phía server sau postback:
// Lấy giá trị ẩn từ hidden input _hifi
string b_gtri = Request.Form[lblPhai.ClientID + "_hifi"]; // "M" hoặc "F"