日期:2010-12-23 浏览次数:20505 次
概述
在很多情况下,我们都会使用到列表控件来方便用户选择一些选项。例如在某网站上注册新用户时,通常会询问你的性别是"男"还是"女",这时我们用单项按钮以供用户做出相应的选择。还有当你填写自己的家庭地址时,通常会使用到一个包含各省省名的下拉列表来供用户直接选择,这样可以减少用户的输入量。上述的这些单项按钮和下拉列表都在ASP.NET移动程序中都是以列表控件的形式存在的。我们可以使用列表控件来呈现各种形式(单项、多选、下拉列表)的列表,以供用户选择和使用。但是在ASP.NET 2.0移动开发工具包中,只有三个列表控件,分别为SelectionList 、List和ObjectList 控件。虽然没有ASP.NET 2.0中那么多类型的列表控件,但是我们却可以使用SelectionList 、List和ObjectList这三个列表控件实现单项、多选等几乎所有的功能。在本系列文章中将探讨这三个控件的一些基本功能和使用方法,并说明这三个控件相似之处及异同点。
图1是SelectionList 、List和ObjectList三个控件在类的继承上的关系:
图1
图2 在上图所示的PocketIE浏览器上,列表控件是以下拉列表的形式呈现的。而在Openwave的WML浏览器上,下拉列表类型的呈现形式是不支持的,为此在该浏览器中,是将列表中的各个列表项显示出来,供用户进行相应的选择。
List列表控件支持分页功能,这就意味着它支持列表项较多的列表。它只可以以项目符号列表或编号列表的形式进行呈现(只要浏览器支持即可)。除了之外,其它的被SelectionList支持的列表形式(例如下拉列表),在List中均无法实现。图3中List列表控件就是以编号列表的形式呈现的,并且支持分页功能。
图3 List列表控件以编号列表的形式呈现在页面上,而且支持分页功能。
图4 ObjectList 控件中,可以在每个列表项中显示多个字段。这里同时显示了球队名称、输、赢和积分等字段。
图5 每个列表项可以和多个命令进行关联,页面下方的各个链接就是与列表项关联的命令,你可以选择不同的命令,产生不同的操作
能力 | SelectionList | List | ObjectList |
是否可以以下拉列表、列表框、 单项或多选按钮等类型在HTML浏览器上进行呈现 | √ | ||
是否支持多选 | √ | ||
以项目符号列表或编号列表的形式进行呈现 | √ | ||
当列表包含较多的列表项时,是否可以启用分页功能 | √ | √ | |
是否可以通过服务器语法声明静态地生成列表项 | √ | √ | |
是否可以与数据源绑定 | √ | √ | √ |
在一个列表项中是否可以同时显示多个字段 | √ | ||
在选择一个列表项后是否会触发相应的事件 | √(注释) | √ | √ |
每个列表项是否可以自定义相关联的命令 | √ | ||
是否支持模板 | √ | √ | |
注释:SelectionList列表控件在选择一个列表项后,其自身是无法自动产生一个回发(postback)操作的。你必须在包含该SelectionList列表控件的Form控件上放置一个Command控件,再由该Command控件将因列表选项发生改变的信息回发到服务器上,这样ASP.NET运行时就可以根据这些信息做出相应的处理,并将处理后的信息返回到移动页面上。 |
采用不同的方式构建列表
在开始探究