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

 

四、如何:响应列表 Web 服务器控件中的更改

      本主题中的信息适用于如下列表 Web 服务器控件:ListBoxDropDownListCheckBoxList RadioButtonList

当用户在列表 Web 服务器控件中进行选择时,控件将引发一个事件,您可以直接对该事件做出响应。通常根本不需要直接对选择事件进行响应。相反,更常见的做法是在窗体由某个控件(如 Button 控件)发送到服务器时测试选定了哪个项。

      为控件的 SelectedIndexChanged 事件创建一个事件处理程序。默认情况下,SelectedIndexChanged 事件并不立即导致向服务器发送页面,而是当下次发送窗体时在服务器代码中引发此事件。若要使 SelectedIndexChanged 事件引发立即发送,请将控件的 AutoPostBack 属性设置为 true

说明: 只要用户从列表控件中进行选择,就会立即引发事件。如果 AutoPostBack 属性为 true,则每次选择时都将发送窗体,但在每个往返行程中选定的项保持不变。

下面的代码示例演示如何响应 DropDownList 控件中的选择。事件处理程序将显示用户在 Label 控件中的选择。

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

Protected void DropDownList1_SelectedIndexChanged(object sender,

     System.EventArgs e)

{

   Label1.Text = "You selected " + DropDownList1.SelectedItem.Text;

}

 

五、如何:在列表 Web 服务器控件中添加项 (Visual Studio)

本主题中的信息适用于以下 Web 服务器控件:

ListBoxDropDownListCheckBoxListRadioButtonListBulletedList

可以使用以下三种方法向列表 Web 服务器控件添加项:

·在设计时添加静态项。

·以编程方式在运行时添加项。

·使用数据绑定添加项。有关详细信息,请参见如何:根据数据源来填充列表 Web 服务器控件 (Visual Studio)

添加列表项时,最多可以为该项指定三个可能的属性。下表描述了这些属性。

属性

说明

Text

指定列表中显示的文本。

Value

指定一个与项关联但不显示的值。例如,可以将 Text 属性设置为化学元素的名称,并将 Value 属性设置为该元素的符号。

Selected

指示是否选择此项。在 CheckBoxList 控件和多重选择 ListBox 控件中,可以选择多个项。在 DropDownList 控件、RadioButtonList 控件和单项选择 ListBox 控件中,一次只能选择一个项。如果您在这些控件中设置多个选定的项,则浏览器将确定哪一项呈现选定状态。在 BulletedList 控件中,此设置不起作用。

A、在设计时添加静态项

1、在“设计”视图中,选择要向其中添加项的列表控件。

在“属性”窗口中,单击 Items 框中的省略号按钮 ( )

出现“ListItem 集合编辑器”对话框。

2、单击“添加”添加新项。

3、选择此新项,然后在属性网格中为它的“Text”、“Value”和“Selected”属性输入值。

4、对要添加的每个项重复步骤 2 和步骤 3,然后单击“确定”。

 

B、以编程方式添加项

1、创建 ListItem 类型的新对象,设置其 Text 属性和 Value 属性。通常是通过调用 Add 方法来创建新的 ListItem

2、调用控件的 Items 集合的 Add 方法,并将新对象传递给它。

下面的代码示例演示如何向 ListBox 控件添加 ListItem 对象,但是,对于所有列表 Web 服务器控件,添加过程均相同。

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

{

    ListBox1.Items.Add(new ListItem("Carbon", "C"));

    ListBox1.Items.Add(new ListItem("Oxygen", "O"));

}

 

六、如何:根据数据源来填充列表 Web 服务器控件 (Visual Studio)

      本主题中的信息适用于以下 Web 服务器控件:

ListBoxDropDownListCheckBoxListRadioButtonListBulletedList

列表 Web 服务器控件可用来显示从某个数据源读取的项。控件中的每一项对应于数据源中的一项(如,数据表中的一行)。控件可以显示来自数据源的一个字段,还可以使用第二个字段作为项的值。

通过将列表控件的 AppendDataBoundItems 属性设置为 true,可以将设计时创建的列表项与从数据源填充的列表项组合在一起。典型的示例是创建一个文本为“Select an item”的列表项,将其作为 DropDownList 控件的第一项。然后,可以从数据源填充 DropDownList 控件中的其余项。

步骤:

      1、向页面添加数据源控件,如 SqlDataSource 控件或 ObjectDataSource 控件。

2、使用“数据源配置向导”为数据源控件定义连接和查询或数据检索方法。

3、右击列表控件,并单击“显示智能标记”。

4、在任务菜单中,单击“选择数据源”。 此时将显示“数据源配置向导”。

5、在“选择数据源”列表中,单击在步骤 1 中添加的数据源控件。

6、在“选择要显示的数据字段”列表中,单击要在控件中显示的数据字段。

7、还可以选择在“为值选择数据字段”列表中,单击要作为每个项的值存储的数据字段。

8、如果从数据源填充列表时控件已包含您要保留的静态定义列表项,还可以选择将控件的 AppendDataBoundItems 属性设置为 true

 

七、如何:设置列表 Web 服务器控件中的选定内容 (Visual Studio)

      该主题中的信息适用于以下 Web 服务器控件:

ListBoxDropDownListCheckBoxListRadioButtonList

      通常,用户在列表 Web 服务器控件中选择项以指示他们的选择。但您也可能希望预先选择一些项,或者是在运行时(以编程方式)根据某些条件选择某些项。

 

1、在设计时设置列表 Web 服务器控件中的选定内容

·在“属性”窗口中,单击 Items 属性的省略号按钮 ( ) 打开“ListItem 集合编辑器”对话框。

·从“成员”列表中,选择要选定的成员,然后将它的 Selected 属性设置为 true

·如果该控件被设置为允许有多个选定内容,请对每个要选择的项重复步骤 2,然后单击“确定”关闭对话框。

 

2、以编程方式设置列表 Web 服务器控件中的单项选择

执行下列操作之一

将控件的 SelectedIndex 属性设置为要选择的项的索引值。索引是从零开始的。若要设置不选择任何项,请将 SelectedIndex 设置为 -1

      说明: 如果将 DropDownList 控件的 SelectedIndex 属性设置为 -1,则该控件会将该值重置为 0(因为 DropDownList 控件始终会选择一个列表项)。

// Selects the third item

ListBox1.SelectedIndex = 2;

      设置列表中单个项的 Selected 属性。

' Selects the item whose text is Apples

ListBox1.Items.FindByText("Apples")

If Not li Is Nothing Then

   li.Selected = True

End If

 

// Selects the item whose text is Apples

ListItem li = ListBox1.Items.FindByText("Apples");

if(li != null)

{

   li.Selected = true;

}

 

      3、以编程方式设置列表控件中的多重选择

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

说明: 只有在控件的 SelectionMode 属性设置为 Multiple 时,才能选择多个项。

     下面的示例演示如何设置一个多重选择 ListBox 控件(名为 ListBox1)中的选定内容。该代码每隔一项选择一个。

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

{

   // Counter

   int i = 0;

   foreach(ListItem li in ListBox1.Items)

   {

      if( (i%2) == 0)

      {

         li.Selected = true;

      }

      i += 1;

   }

}

 

你可能感兴趣的:(编程,Web,object,服务器,asp.net,button)