服务器控件
属性selectionmode用于确定从列表框中可以选择一个选项还是多个选项。在默认情况下,只能进行单选。下面修改前面的例子,使用列表框,允许用户进行多选。
试一试:使用
(1) 在文件夹ch03中创建TIO-ListBox.ASPx文件,输入下列代码:
Sub Page_Load()
If Page.IsPostBack Then Dim msg As String
If list1.Items(0).Selected Then msg = msg & list1.Items(0).Text & "
"
If list1.Items(1).Selected Then msg = msg & list1.Items(1).Text & "
"
If list1.Items(2).Selected Then msg = msg & list1.Items(2).Text & "
"
If msg<>"" then
Message.Text = "You have selected:
" & msg
Else
Message.Text =""
End If
End Sub
Which city do you wish to look at hotels for?
(2) 在浏览器中运行此页面,并通过Ctrl、Shift键选择多个项。单击Submit Query按钮,得到如图3-6所示的结果。
图 3-6
代码的说明
这个例子中的控件只对前面的TIO-DropDownList.ASPx例子做了非常小的修改,把DropDown改为ListBox,设置selectionmode属性以允许选择多个选项:
为了选择多个城市,必须对ASP.NET代码作彻底的修改。建立一个列表,在变量msg中显示,代码如下:
Dim msg As String = "You have selected:
"
接着对每个可选的城市,都要检查该城市是否已被选中,如果选中了,就把该城市名添加到msg变量中。这里的技巧是理解在列表框中选项是经过编号(索引)的,如果某些选项被选中,就把selected属性设置为TRUE。最后把变量msg的值(文本字符串和HTML)赋予message标签的Text属性,让它在页面上显示。这比处理一个选项复杂,但会得到需要的输出。

