所有資料繫結控件繼承 `BaseDataBoundControl`,核心成員:
轉譯為 `
| 屬性 | 說明 |
|---|---|
| AutoPostBack | 選項變更時是否自動 Postback (預設 false) |
| DataTextField | 顯示文字欄位 |
| DataValueField | 實際值欄位 |
| Items | ListItem 集合 (可手動添加) |
| SelectedIndex / SelectedItem / SelectedValue | 取得/設定選取項 |
| AppendDataBoundItems | true 保留手動項目,false (預設) 僅繫結資料 |
轉譯為 `
支援分頁 (`AllowPaging`)、排序 (`AllowSorting`)、編輯/刪除 (`AutoGenerateEditButton`/`DeleteButton` 或 `CommandField`)、資料鍵 (`DataKeyNames`)、空資料模板 (`EmptyDataTemplate`)。欄位類型:`BoundField`、`TemplateField`、`CheckBoxField`、`HyperLinkField`、`ButtonField`、`ImageField`、`CommandField`。
`RepeatDirection`:`Vertical`/`Horizontal`;`RepeatColumns` 控制水平重複數;`RepeatLayout`:`Table` (預設) / `Flow` (無表格,用 span/div)。模板:`ItemTemplate`、`AlternatingItemTemplate`、`SelectedItemTemplate`、`EditItemTemplate`、`HeaderTemplate`、`FooterTemplate`、`SeparatorTemplate`。
public enum OrderStatus { Pending = 1, Processing = 2, Shipped = 3, Completed = 4 }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlStatus.DataSource = Enum.GetValues(typeof(OrderStatus));
ddlStatus.DataBind(); // Text/Value 均為列舉名稱/數值
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string sql = "SELECT UserId, UserName, RealName, Age FROM Users";
DataTable dt = DbHelper.GetDataTable(sql);
gvUsers.DataSource = dt;
gvUsers.DataBind();
}
}
掌握 `DataSource`/`DataSourceID`/`DataBind()` 三要素與各控件關鍵屬性,是駕馭 ASP.NET 資料繫結的基礎。DropDownList/ListBox 適合選單輸入;GridView 適合完整表格管理;DataList 適合自訂版面流式呈現。選對控件,事半功倍。