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

<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ênKiểuMặc địnhCó thể cóMục đíchThuộc tính mớiGhi chú
TextstringGiá trị hiển thị ban đầu của controlCũng được dùng làm giá trị khởi tạo cho trường ẩn _hifi
nhapboolfalsetrue / 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ênKiểuMặc địnhCó thể cóMục đíchThuộc tính mớiGhi chú
lkestringChuỗi cách nhau bằng dấu phẩyDanh sách giá trị hiển thị mà control lần lượt lật qua khi click
trastringChuỗi cách nhau bằng dấu phẩyGiá 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ự:

  1. Gán tenKieu = "dao".
  2. Nếu nhap = true, gán nhap = "C" lên thẻ (nếu false không gán).
  3. Gán lke lên thẻ.
  4. Nếu tra có giá trị, gán tra lên thẻ.
  5. Gán ten_goc = ID.
  6. Gán onclick = "P_DAO(this)".
  7. Nếu CssClass trống, gán mặc định css_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:

AttributeGiá trịMô tả
tenKieu"dao"Xác định loại control
ten_gocIDID gốc của control
lkeGiá trị lkeDanh sách text hiển thị
traGiá trị traDanh 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"