关于c#:如何设置ListBox中选择的多个项目? | 珊瑚贝

How to set multiple items as selected in ListBox?


我有一个列表框,选择模式为多个。在后面的代码中,我想将一些值设置为选中。这些值存在于名为”Names”的 ListItems[] 中。

HTML 代码:

1
2
3
4
5
6
7
8
<asp:ListBox ID=“lbto” class=“chosen” runat=“server” Width=“450px”
 Height=“20px” SelectionMode=“Multiple”>
    Mandy</asp:ListItem>
    Amit</asp:ListItem>
    sundar</asp:ListItem>
    ragu</asp:ListItem>
    raju</asp:ListItem>
</asp:ListBox>

ListItem[] 名称包含”ragu”和”raju”。现在,当页面加载时,ListBox 应该包含 ‘ragu’ 和 ‘raju’ 作为选定值。


如何设置 ListItem 的 Selected 属性?

1
2
3
4
5
6
7
var names = new List<string>(new string[] {“ragu”,“raju” });

foreach (var item in lbto.Items)
{
    if (names.Contains(item.Text))
        item.Selected = true;
}

  • 您可以使用上述方法将多个项目设置为 Selected。更新了答案。
  • 如果 lbto 包含 100 项表示,它将检查整个 100 项。会需要更多时间吗?
  • foreach 表示它将检查每个项目,或者您是什么意思?


你可以使用FindByValue方法

1
2
foreach (string item in stringList)
    lbxList.Items.FindByValue(item).Selected = true;

使用一行linq

1
lbto.Items.Cast<String>().ForEach(i => i.Selected = names.Contains(i.Text));

1
lbto.Items.OfType<string>().ForEach(i => i.Selected = names.Contains(i.Text));
  • 我收到一条错误消息,指出 ListItemCollection 没有”ForEach”的定义,也没有扩展方法”ForEach”
  • 解决方案不起作用。 \\t \\t 我收到一条错误消息,指出 ListItemCollection 没有 ‘ForEach’ 的定义,也没有扩展方法 ‘ForEach’
  • System.Collection.Generic.IEnumerable<string> 不包含 Foreach 的定义。我改用了 foreach 语句。
  • @rhose87 您需要使用 System.Linq 指令


来源:https://www.codenong.com/15943883/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?