首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET DropDownList 控制項資料綁定與取值完整指南

     編輯:ASP.NET 基礎

DropDownList 是 ASP.NET WebForms 最常用的下拉選單控制項。本文快速整理資料綁定與取值的標準寫法。

1. 資料綁定

this.DropDownList1.DataSource = CategoryManager.GetCategories();
DropDownList1.DataValueField = "Id";      // 對應 value 屬性(通常為主鍵)
DropDownList1.DataTextField = "Name";     // 對應顯示文字
DropDownList1.DataBind();

關鍵屬性說明

加入預設提示項目(如「請選擇」)

DropDownList1.Items.Insert(0, new ListItem("請選擇", ""));
// 或標記法
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true">
    <asp:ListItem Text="請選擇" Value="" />
</asp:DropDownList>

2. 取得使用者選取值

// 取得 Value(對應 DataValueField)
int categoryId = int.Parse(this.DropDownList1.SelectedValue);

// 取得 Text(對應 DataTextField)
string categoryName = this.DropDownList1.SelectedItem.Text;

// 取得索引
int index = this.DropDownList1.SelectedIndex; // -1 表示未選取

常用屬性對照

屬性用途範例值
DataSource資料來源DataTable、List<T>、IEnumerable
DataValueField實際提交的值"Id", "CategoryId", "Code"
DataTextField使用者看到的文字"Name", "Title", "Description"
AppendDataBoundItems是否保留靜態項目true/false(預設 false)

3. 進階技巧

多欄位顯示(Text 組合多個欄位)

資料來源查詢時組合:

SELECT Id, Name + ' (' + Code + ')' AS DisplayText FROM Categories

或綁定後處理:

DropDownList1.DataBound += (s, e) => {
    foreach (ListItem item in DropDownList1.Items)
    {
        // 從 DataItem 取得額外欄位組合 Text
    }
};

啟用/停用特定項目

DropDownList1.Items.FindByValue("3").Enabled = false; // 灰色不可選

自動回傳

DropDownList1.AutoPostBack = true;
DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;

常見錯誤避坑

  • Page_Load 重複綁定:必須包在 if (!IsPostBack) 內
  • SelectedValue 為空字串轉 int 擲例外:先判斷 string.IsNullOrEmpty(ddl.SelectedValue)
  • 資料來源欄位名稱拼寫錯誤:DataValueField/DataTextField 需與資料來源欄位名完全一致(含大小寫)

掌握這些基礎操作,即可輕鬆駕馭 DropDownList 於各種表單與查詢介面中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
需求屬性/方法備註
選取的值SelectedValue字串型別,需自行轉型
選取的文字SelectedItem.Text若無選取會拋例外,先判斷 SelectedIndex >= 0
選取索引SelectedIndex可用於判斷是否有選取
所有項目Items 集合ListItemCollection,可迴圈