[英]Populate ListBox with linq query - Value not getting set
誰能告訴我為什么這不能將ListItems的值設置為ID? 值和文本都以DISPLAY_NAME的形式出現
lstSelected.DataSource = entities.User
.Where(x => SelectedItems.Contains(x.ID))
.Select(x => new ListItem { Text = x.DISPLAY_NAME, Value = x.ID })
.ToList<ListItem>();
lstSelected.DataBind();
嘗試設置DisplayMember
和ValueMember
屬性(如果使用asp.net,則設置DataTextField
和DataValueField
)
lstSelected.DisplayMember = "DISPLAY_NAME";
lstSelected.ValueMember = "ID";
lstSelected.DataSource = entities.User
.Where(x => SelectedItems.Contains(x.ID))
.ToList();
lstSelected.DataBind();
您有2個選項(兩種方式都使用錯誤):
設置DataSource
, DataTextField
和DataValueField
:
lstSelected.DataSource = entities.User
.Where(x => SelectedItems.Contains(x.ID))
.ToList<ListItem>();
lstSelected.DataTextField = "DISPLAY_NAME";
lstSelected.DataValueField = "ID";
lstSelected.DataBind();
或實例化ListItem
並將其添加到您的ListBox
:
List<ListItem> mySelectedItems = entities.User
.Where(x => SelectedItems.Contains(x.ID))
.Select(x => new ListItem { Text = x.DISPLAY_NAME, Value = x.ID })
.ToList<ListItem>();
foreach(ListItem item in mySelectedItems)
{
lstSelected.Items.Add(item);
}
lstSelected.DataBind();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.