从c#</asp:listbox>后面的代码中选择<asp:listbox>中的多个列表项

时间:2013-02-18 09:23:37

标签: c# asp.net listbox

我有ListBox(with selectionMode=multiple)并将所选值存储在Cookie中。 当用户回来时,我想再次为他提供所有选项。

到目前为止我做了什么:我得到所有选定的值并存储索引“,” - 以cookie中的字符串分隔。

当用户回来时,我拆分字符串并循环遍历所有ListItems以再次选择每一个!

但是:

foreach (string str in selectedStr)
{
    listbox1.SelectedIndex = Int32.Parse(str);
}

我只获得一个(随机?)选定的值。

有人可以帮助我重新选择所有选定的值吗? 甚至可能是一个更好的解决方案?

2 个答案:

答案 0 :(得分:3)

尝试使用Listview的FindByValue属性,如下所示......

foreach (string str in selectedStr)
{
    if(listbox1.Items.FindByValue(str) != null) 
    { 
          listbox1.Items.FindByValue(str).Selected = true; 
    } 
}

答案 1 :(得分:2)

您可以遍历拆分的字符串数组,并根据索引访问ListBox.Items[]并将Selected属性设置为true。

foreach (string str in selectedStr)
{
    listbox1.Items[Int32.Parse(str)].Selected = true;
}

确保str确实是一个整数,并且其范围为Items.Length