我有一个列表框,它绑定到数据库中的对象列表。我有一个辅助列表,其中包含较少的对象,我想用它来标记为选定的元素。
cell = new HtmlTableCell();
List<ClasaAutor> listaAutori = DataTableToClasaAutor(dal.CitesteTotiAutori());
List<ClasaAutor> listaAutoriPublicatie = DataTableToClasaAutor(dal.CitesteTotiAutoriUneiPublicatii(guidPublicatie));
ListBox list = new ListBox();
list.SelectionMode = ListSelectionMode.Multiple;
list.ID = "cbAutori";
list.DataSource = listaAutori;
list.DataTextField = "NumeComplet";
list.DataValueField = "GuidAutor";
list.DataBind();
foreach (ClasaAutor autor in listaAutoriPublicatie)
{
for (int i = 0; i < list.Items.Count; i++)
{
if (list.Items[i].Value == autor.GuidAutor.ToString())
list.SelectedIndex = i;
}
}
cell.Controls.Add(list);
row.Cells.Add(cell);
问题是只有我的最后一个元素被选中......为什么?我该如何解决?
我的if
没问题,它真实了2次......
答案 0 :(得分:2)
试试这个循环:
foreach (ClasaAutor autor in listaAutoriPublicatie)
{
foreach (ListItem item in list.Items)
{
if (item.Value == autor.GuidAutor.ToString())
item.Selected = true;
}
}
答案 1 :(得分:1)
语义问题,列表的SelectedIndex只能包含一个值,这不是集合
但是,您可以通过将其Selected值设置为true来选择列表项
list.Items[i].Selected = list.Items[i].Value == autor.GuidAutor.ToString();