四、如何:响应列表 Web 服务器控件中的更改
本主题中的信息适用于如下列表 Web 服务器控件:ListBox、DropDownList、CheckBoxList 和 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 服务器控件:
ListBox、DropDownList、CheckBoxList、RadioButtonList、BulletedList
可以使用以下三种方法向列表 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 服务器控件:
ListBox、DropDownList、CheckBoxList、RadioButtonList、BulletedList
列表 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 服务器控件:
ListBox、DropDownList、CheckBoxList、RadioButtonList
通常,用户在列表 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;
}
}