ASP.NET 2.0移动开发之列表控件2010-12-04 天极 轩辕南宫概述在很多情况下,我们都会使用到列表控件来方便用户选择一些选项。例如在 某网站上注册新用户时,通常会询问你的性别是"男"还是"女 ",这时我们用单项按钮以供用户做出相应的选择。还有当你填写自己的家 庭地址时,通常会使用到一个包含各省省名的下拉列表来供用户直接选择,这样 可以减少用户的输入量。上述的这些单项按钮和下拉列表都在ASP.NET移动程序 中都是以列表控件的形式存在的。我们可以使用列表控件来呈现各种形式(单项 、多选、下拉列表)的列表,以供用户选择和使用。但是在ASP.NET 2.0移动开发 工具包中,只有三个列表控件,分别为SelectionList 、List和ObjectList 控 件。虽然没有ASP.NET 2.0中那么多类型的列表控件,但是我们却可以使用 SelectionList 、List和ObjectList这三个列表控件实现单项、多选等几乎所有 的功能。在本系列文章中将探讨这三个控件的一些基本功能和使用方法,并说明 这三个控件相似之处及异同点。图1是SelectionList 、List和ObjectList三个控件在类的继承上的关系:

图1上面的三个列表控件中,SelectionList是最简单的,但是它可以以各种不同 的类型进行呈现,因此具有很大的灵活度,以供不同的需求使用应用的列表类型 。同时因为SelectionList控件不支持分页功能,所以在包含多个列表项的情况 下,该控件就显得力不从心了。还有一点要需要重点说明的是,SelectionList 是这三个列表控件中唯一支持多选的。而且该控件还可以以下拉列表的形式进行 呈现,也可以以单项和多选框的方式进行呈现,当然这种呈现格式必须要被移动 设备上的浏览器所接受。在一些WML浏览器上,只支持一些特殊的呈现形式,例 如单项和多选按钮,并不支持下拉列表这种呈现形式。图2演示了下拉列表在不 同浏览器上呈现时所存在的差别。


图2 在上图所示的PocketIE浏览器上,列表控件是以下拉列表的形式呈现的 。而在Openwave的WML浏览器上,下拉列表类型的呈现形式是不支持的,为此在 该浏览器中,是将列表中的各个列表项显示出来,供用户进行相应的选择。List 列表控件支持分页功能,这就意味着它支持列表项较多的列表。它只可以以项目 符号列表或编号列表的形式进行呈现(只要浏览器支持即可)。除了之外,其它的 被SelectionList支持的列表形式(例如下拉列表),在List中均无法实现。图3中 List列表控件就是以编号列表的形式呈现的,并且支持分页功能。

图3 List列表控件以编号列表的形式呈现在页面上,而且支持分页功能。