关于c#:如何设置ListBox中选择的多个项目?
How to set multiple items as selected in ListBox?
我有一个列表框,选择模式为多个。在后面的代码中,我想将一些值设置为选中。这些值存在于名为"Names"的 ListItems[] 中。
HTML 代码:
|
<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' 作为选定值。
如何设置
|
var names = new List<string>(new string[] {"ragu","raju" });
foreach (var item in lbto.Items) |
相关讨论
- 您可以使用上述方法将多个项目设置为
Selected 。更新了答案。 -
如果
lbto 包含 100 项表示,它将检查整个 100 项。会需要更多时间吗? -
foreach 表示它将检查每个项目,或者您是什么意思?
你可以使用
|
foreach (string item in stringList)
lbxList.Items.FindByValue(item).Selected = true; |
使用一行linq
|
lbto.Items.Cast<String>().ForEach(i => i.Selected = names.Contains(i.Text));
|
或
|
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 指令