簡體   English   中英

使用linq查詢填充ListBox-未設置值

[英]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();

嘗試設置DisplayMemberValueMember屬性(如果使用asp.net,則設置DataTextFieldDataValueField

lstSelected.DisplayMember = "DISPLAY_NAME";
lstSelected.ValueMember = "ID";
lstSelected.DataSource = entities.User
     .Where(x => SelectedItems.Contains(x.ID))
     .ToList();
lstSelected.DataBind();

您有2個選項(兩種方式都使用錯誤):

設置DataSourceDataTextFieldDataValueField

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM