ASP.NET中的多选下拉列表






4.67/5 (31投票s)
2007 年 3 月 19 日
2分钟阅读

633536

25717
多选下拉列表控件允许用户从列表中选择多个项目,并以逗号分隔的格式显示所选项目。
引言
ASP.NET中的下拉列表用于从列表中选择单个项目。列表框控件用于选择多个项目,但它在页面上占用更多空间。包含许多此类控件的ASP.NET页面可能难以找到每个控件的适当空间和对齐方式。
为了克服这个问题,我正在介绍一个多选下拉列表框控件。它是一个用户控件,可以直接轻松地用于页面上。它允许用户从列表中选择多个项目,所选项目将以逗号分隔的格式显示在文本区域中,并且它还可以保留所选项目。
如何使用此控件
用户控件MultiSelectDropDown
可以放置在任何网页上。
将MultiSelectDropDown
控件拖放到您想要使用多选功能的网页上。
使用适当的值填充下拉列表。在我的示例中,它是这样填充的:
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack )
{
MultiSelectDropDown1.Clear();
MultiSelectDropDown1.List.Items.Add(new System.Web.UI.WebControls.ListItem("Apple","1")) ;
MultiSelectDropDown1.List.Items.Add(new System.Web.UI.WebControls.ListItem("Grapes","2")) ;
MultiSelectDropDown1.List.Items.Add(new System.Web.UI.WebControls.ListItem("Orange","3")) ;
MultiSelectDropDown1.List.Items.Add(new System.Web.UI.WebControls.ListItem("Strawberry","4")) ;
MultiSelectDropDown1.List.Items.Add(new System.Web.UI.WebControls.ListItem("Water Melon","5")) ;
}
}
System.Collections.ArrayList selTexts = MultiSelectDropDown1.SelectedTexts;
SelectedTexts
属性返回列表中所选项目的ArrayList
,SelectedValues
属性
以下是此控件提供的主要公共属性:
SelectedTexts |
列表中所选文本的ArrayList |
SelectedValues |
列表中所选项目对应的值的ArrayList |
SelectedText |
以逗号分隔的所选文本string |
SelectedItems |
列表中所选项目对应的值和文本的ArrayList |
ListWidth |
设置 /获取 控件的宽度 |
列表 |
项目的列表 |
屏幕截图
以下屏幕截图显示了如何从列表中选择多个项目。
可以通过控件的ListWidth
属性更改控件的宽度。
MultiSelectDropDown1.ListWidth = Convert.ToDouble(txtWidth.Text);
下图显示,当您在“下拉宽度”字段中输入150并单击“设置下拉宽度”按钮时,控件宽度已从250
更改为150
。
下拉列表还以逗号分隔的格式显示所选文本的工具提示。如果下拉列表的宽度不足以显示所有选定的文本,它可以帮助用户找出选定的项目是什么,而无需单击下拉列表。
下图显示文本的工具提示。
当您单击“显示所选水果”按钮时,列表中所选的项目将添加到“所选水果”列表框中。
代码如下
ListBox1.Items.Clear();
System.Collections.ArrayList selItems = MultiSelectDropDown1.SelectedTexts;
ListBox1.DataSource = selItems;
ListBox1.DataBind();
以下代码显示了如何设置控件的所选项目。
ArrayList selectedItems = new ArrayList();
// Select the items from the list
foreach (System.Web.UI.WebControls.ListItem selItem in ListBox1.Items )
{
System.Web.UI.WebControls.ListItem li = ListBox1.Items.FindByText(selItem.Text ) ;
selectedItems.Add(li);
}
MultiSelectDropDown1.SelectedItems =selectedItems;
它使用项目的ArrayList
设置控件的SelectedItems
属性。
结论
这是一个非常有用且简单的控件,可以用于任何网页,而与.NET版本无关。