使用ASP.NET和C#在下拉列表中选择多个值

35

使用 ASP.NET 和 C# 在 DropDownList 中选择多个值。我试图从下拉列表中选择单个值,但无法找到多个选择。

5个回答

42

在这种情况下,您应该使用 ListBox 控件而不是下拉列表,并将 SelectionMode 属性设置为 Multiple

<asp:ListBox runat="server" SelectionMode="Multiple" >
  <asp:ListItem Text="test1"></asp:ListItem>
  <asp:ListItem Text="test2"></asp:ListItem>
  <asp:ListItem Text="test3"></asp:ListItem>
</asp:ListBox>

4
我们能否获取复选框以选择多个值? - Er Jay Thakkar
1
@downvoter..请告诉我适当的下投票理由,如果有比这更好的解决方案,请分享。 - Sachin
1
@Sachin 如何使列表框只在用户单击时显示选项? 列表框默认情况下会显示所有选项。 我们能否避免这种情况? - Beingnin

26

查看ListBox控件以允许多选。

<asp:ListBox runat="server" ID="lblMultiSelect" SelectionMode="multiple">
            <asp:ListItem Text="opt1" Value="opt1" />
            <asp:ListItem Text="opt2" Value="opt2" />
            <asp:ListItem Text="opt3" Value="opt3" />
</asp:ListBox> 

在代码后端

foreach(ListItem listItem in lblMultiSelect.Items)
    {
       if (listItem.Selected)
       {
          var val = listItem.Value;
          var txt = listItem.Text; 
       }
    }

2

下拉列表不允许在下拉列表中选择多个项目。

如果需要,可以使用列表框控件。

ASP.NET列表框



0

如果您正在使用 ListBox 控件和 LINQ,您可以尝试以下代码:

代码示例:

control.Items.Cast< ListItem >().Where(x => x.Selected).ToList();

我希望这可以解决你的问题!

如果您需要选定的值... ddl.Items.Cast<ListItem>().Where(x => x.Selected).Select(x => Convert.ToInt32(x.Value)).ToList(); - Alejandro Tapia
你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接