Asp.net

將 ListItem 的 ASP.NET 列表數據綁定到 DropDownList 問題

  • August 12, 2009

我剛剛遇到這個奇怪的事情,我希望以不同的(邏輯)方式工作,但事實並非如此。它是錯誤還是“功能”?

所以有一個 DropDownList,我在程式碼隱藏中填充了一個 ListItem 列表。根據智能感知提供的文件,每個新的 ListItem 都有 2 個參數,它們對應於它的文本和值:

List<ListItem> users = new List<ListItem>();
foreach (SubscriptionUser su in subscriptionDetails.UserList)
{
   users.Add(new ListItem(su.FirstName + " " + su.LastName, su.EmailAddress));
}
ddlPrimaryContact.DataSource = users;
ddlPrimaryContact.DataBind();

現在,有人可以解釋一下為什麼數據綁定的 DropDownList 的 Text 和 Value 都設置為完全相同(ListItem 文本),而不是使用 ListItem.Text 作為 Text 和 ListItem.Value 作為 Value?

啊!!http://www.freeimagehosting.net/uploads/fe65d0e7d5.jpg

還是我做錯了什麼?

嗨,當數據綁定(到任何東西)時,您需要設置 DropDownList 的 DataTextField 和 DataValueField。在您的情況下,您應該使用以下程式碼

List<ListItem> users = new List<ListItem>();
foreach (SubscriptionUser su in subscriptionDetails.UserList)
{
   users.Add(new ListItem(su.FirstName + " " + su.LastName, su.EmailAddress));
}
ddlPrimaryContact.DataTextField = "Text";
ddlPrimaryContact.DataValueField = "Value";
ddlPrimaryContact.DataSource = users;
ddlPrimaryContact.DataBind();

引用自:https://stackoverflow.com/questions/1265587