ASP.NET - DropDownList Web 服务器控件概述(上)

来源:互联网 发布:linux grep命令关键字 编辑:程序博客网 时间:2024/05/16 06:58

 

      DropDownList Web 服务器控件使用户可以从预定义的下拉列表中选择单个项。

一、功能

可以使用 DropDownList 控件执行下列操作:

·设置控件的大小(以像素为单位)。

·使用数据绑定来指定要显示的项列表。

·确定选定的项。

·以编程方式指定选定的项。

 

二、背景

DropDownList Web 服务器控件使用户能够从预定义的列表中选择项。它与 ListBox Web 服务器控件的不同之处在于,其项列表在用户单击下拉按钮之前一直保持隐藏状态。此外,DropDownList 控件不支持多重选择模式。

 

1、修改 DropDownList 控件的外观

可以通过以像素为单位设置 DropDownList 控件的高度和宽度来控制其外观。部分浏览器不支持以像素为单位设置高度和宽度,这些浏览器将使用行计数设置。

您无法指定用户单击下拉按钮时列表中显示的项数。所显示列表的长度由浏览器确定。

与其他 Web 服务器控件一样,您可以使用样式对象来指定 DropDownList 控件的外观。

 

2、列表项

DropDownList 控件实际上是列表项的容器,这些列表项都属于 ListItem 类型。每一 ListItem 对象都是带有自己的属性的单独对象。下表说明了这些属性。

属性

说明

Text

指定在列表中显示的文本。

Value

包含与某个项相关联的值。设置此属性使您可以将该值与特定的项关联而不显示该值。例如,可以将 Text 属性设置为某种颜色的名称,并将 Value 属性设置为其十六进制表示形式。

Selected

指示当前是否已选定此项。

若要以编程方式处理列表项,请使用 DropDownList 控件的 Items 集合。Items 集合是一个标准集合,您可以向它添加项对象,也可以从中删除项或清除集合等。

 

当前所选项可在 DropDownList 控件的 SelectedItem 属性中得到。

 

3、将数据绑定到控件

可以使用 DropDownList Web 服务器控件列出使用数据源控件的页可使用的选项。DropDownList 控件中的每个项分别对应于数据源中的一个项(通常是单个数据记录)。

控件显示来自数据源的一个字段。(可选)可将控件绑定到另一个字段以设置项的值(该值不显示)。

与其他 Web 服务器控件一样,可将任何控件属性(如控件的颜色或大小)绑定到数据。

 

4DropDownList 事件

当用户选择一项时,DropDownList 控件将引发 SelectedIndexChanged 事件。默认情况下,此事件不会导致向服务器发送页。但可通过将 AutoPostBack 属性设置为 true,强制该控件立即发送。

      说明: 自动回发功能要求浏览器支持 ECMAScriptJscript JavaScript),并且用户的浏览器上已启用脚本撰写。

 

三、如何:确定 List Web 服务器控件中的所选内容

      本主题中的信息适用于这些 Web 服务器控件:ListBoxDropDownListCheckBoxList RadioButtonList

使用列表 Web 服务器控件时一个最常见的任务是确定用户已选择了哪一项或哪些项。具体过程取决于列表控件 (List Control) 允许单项选择还是多重选择。

在使用 DropDownList 控件、RadioButtonList 控件和单选 ListBox 控件时,请使用下面的过程。

 

1、确定单项选择列表控件 (List Control) 中的选定内容

      使用下列方法之一:

·若要获取选择项的索引值,请读取 SelectedIndex 属性的值。索引是从零开始的。如果未选择任何项,则该属性的值为 -1

·若要获取选择项的内容,请获取该控件的 SelectedItem 属性。此属性返回一个 ListItem 类型的对象。通过获取该对象的 Text Value 属性可以获取选择项的内容。

安全说明: Web 窗体页中的控件可能包含具有潜在危害的客户端脚本。默认情况下,Web 窗体页验证用户输入是否不包括脚本或 HTML 元素。

下面的代码示例演示如何测试 RadioButtonList 控件中选择了哪一项。通过读取 SelectedIndex 属性的值,代码首先确定是否有选择内容,在用户选择一项之前该属性值设置为 -1。然后代码获取 SelectedItem 对象并显示该对象的 Text 属性。

Protected void Button1_Click (object sender, System.EventArgs e)

{

   // Is anything selected? The index is -1 if nothing is selected.

   if (RadioButtonList1.SelectedIndex > -1) {

      Label1.Text="You chose: " +

          RadioButtonList1.SelectedItem.Text;

   }

}

如果列表控件 (List Control) 支持多重选择,您就必须依次通过该控件,逐个检查选定项。

 

      2、确定多重选择列表控件 (List Control) 中的选定内容

      依次通过控件的 Items 集合,分别测试每一项的 Selected 属性。

下面的示例演示如何测试多选 ListBox 控件(名为 ListBox1)的所选内容。代码将在一个标签中显示选定项的列表。

Protected void Button1_Click(object sender, System.EventArgs e)

{

   string msg = "" ;

   foreach(ListItem li in ListBox1.Items)

   {

      if(li.Selected == true)

         {

            msg += "<BR>" + li.Text + " is selected.";

         }

   }

   Label1.Text = msg;

}

 

原创粉丝点击