2

谁能告诉我为什么这不会将 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();
4

2 回答 2

4

尝试设置DisplayMemberValueMember属性(或者DataTextField如果DataValueField您使用的是 asp.net)

lstSelected.DisplayMember = "DISPLAY_NAME";
lstSelected.ValueMember = "ID";
lstSelected.DataSource = entities.User
     .Where(x => SelectedItems.Contains(x.ID))
     .ToList();
lstSelected.DataBind();
于 2012-11-29T21:41:51.073 回答
0

您有 2 个选项(您都以错误的方式使用):

设置DataSource,DataTextFieldDataValueField:

lstSelected.DataSource = entities.User
       .Where(x => SelectedItems.Contains(x.ID))
       .ToList<ListItem>();

lstSelected.DataTextField = "DISPLAY_NAME";
lstSelected.DataValueField = "ID";

lstSelected.DataBind();

或实例化ListItems 并将它们添加到您的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();
于 2012-11-29T22:02:58.830 回答