用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 程序开发教程 > ASP.net教程 > Asp.Net实例教程 > 正文
ASP.NET移动开发之SelectionList控件
iTbulo.COM 2007-5-13 轩辕南宫()

 正如前面提及的那样,SelectionList控件适用于呈现较短列表的数据项。尽管它不具备对长列表的分页显示功能,但是它的呈现形式是丰富多样的。只要设备浏览器支持,SelectionList控件可以以下拉列表、单项按钮、多选按钮和复选框等众多形式存在。

  SelectionList控件的列表中只有一个可视的数据项,其它的数据项只能以隐藏值的形式与可视的数据项进行关联。要在服务器控件语法中指定隐藏值,可以在<Item>元素中使用Value属性,并且将Value属性指定某数据项即可。如果使用动态绑定的形式来构建列表的话,那么你可以使用 DataValueField属性指定数据源中的某个字段作为隐藏值。

  语法

  SelectionList列表控件的语法如下面的清单所示:

<mobile:SelectionList
runat="server"
id="id"
Alignment="{NotSet|Left|Center|Right}"
BackColor="backgroundColor"
BreakAfter="{True|False}"
Font-Bold="{NotSet|False|True}"
Font-Italic="{NotSet|False|True}"
Font-Name="fontName"
Font-Size="{NotSet|Normal|Small|Large}"
ForeColor="foregroundColor"
StyleReference="StyleReference"
Wrapping="{NotSet|Wrap|NoWrap}"

DataMember="dataMember"
DataSource="dataSource"
DataTextField="DataTextField"
DataValueField="DataValueField"
SelectType="{DropDown|ListBox|Radio|MultiSelectListBox|CheckBox}"
Title="String"
OnItemDataBind="itemDataBindHandler"
OnSelectedIndexChanged="selectedIndexChangedHandler">

<!-- 可选,以静态的方式声明数据项-->
<Item Text="Text" Value="Value" Selected="{True|False}"/>

</mobile:SelectionList>

  至于要显示的列表数据项我们可以从数据源中进行读取,这种情况下我们需要使用DataMember、 DataSource、DataTextField和DataValueField等属性。当然你也可以使用<item>标签静态地定义要显示的数据项和隐藏值。注意,在上述SelectionList列表控件的语法中,并没有包含SelectedIndex这个属性,这是因为我们不可以在服务器控件语法中使用它,只有通过代码才可以使用SelectedIndex属性来获取当前选项的索引值。如果在服务器控件语法中要使某数据项处于被选中的状态,你可以在与该数据项对应的<Item> 标签中设置Selected属性为True。

  属性和事件

  下表描述列举了SelectionList列表控件中的一些常用的属性和事件,其中"类型"列描述了对应属性的类型,这样你就可以在代码中对这些属性进行设置和读取,至于这些属性可用的值你可以参考"语法"小节中的说明。

属性/事件 类型 描述
DataMember String 只有当SelectionList列表控件与一个System.Data.DataTable或System.Data.DataSet对象绑定时才使用此属性。该属性指定用来指定DataSet中那个DataTable是列表控件的真正数据源。
DataSource Object 只有当SelectionList列表控件采用数据绑定的方式定义数据项时才使用这个属性。DataSource属性用来指定一个DataSet对象,或是一个集合对象作为列表控件的数据源。
DataTextField String 当SelectionList列表控件绑定到DataSet或集合对象时,DataTextField属性用来指定数据源中的某个字段在列表中进行显示。
DataValueField String 当SelectionList列表控件绑定到DataSet或集合对象时,DataValueField 属性用来指定数据源中的某个字段,用来提供隐藏值与列表显示的数据项进行关联。
Items System.Web. UI.MobileControls.Mobil eListItemCollection 我们可以使用这个属性访问MobileListItemCollection对象,而这个对象又是存储整个列表中的所有数据项对应的 System.Web.UI.MobileControls.MobileLi stItem对象。你可以在代码中对这个集合中的各个MobileListItem对象进行操作。
Rows Integer 当列表控件的SelectType属性值为ListBox 或MultiSelectListBox时,Rows属性用来设置可以在HTML浏览器和CHTML浏览器中可呈现出的数据项行数。由于WML浏览器不支持多行显示,所有设置该属性是无效的。
SelectedIndex Integer 返回或设置当前那个数据项被选中。如果SelectionList列表控件在当前为多选的模式时,也就是说如果你在一个列表中选择可多个数据项,那么SelectedIndex属性返回的是第一个被选中的数据项的索引。
Selection MobileListItem 返回被选中的数据项(一个MobileListItem对象),如果在列表中没有选择任何数据项的话,将返回null。
SelectType System.Web.UI. MobileControls. ListSelectType的枚举值: DropDown| ListBox|Radio| MultiSelectListBox|CheckBox 该枚举用来反映SelectionList列表控件在设备浏览器上的显示样式。CheckBox 和MultiSelectListBox允许多项选择,其它的枚举值只允许单项选择。该属性的默认值为DropDown.
ItemDataBind (event) 事件处理函数 当SelectionList列表控件以数据绑定的形式定义数据项时,在每个数据项被添加到列表中时触发这个事件。
SelectedIndexChanged (event) 事件处理函数 如果SelectionList控件处于单项模式时,当用户使选项方式改变时将调用这个事件处理函数。该事件只有在一个Command控件产生一个从客户端到服务器端的回发时才触发,也就是说该事件是无法由SelectionList控件自动触发的,必须借助于Command控件。

  SelectedIndex和Selection这两个属性只有当某个数据项被选择后才可以在代码中进行设置。你可以在代码中读取 SelectedIndex的属性值,以确定当前选中的数据项在列表中对应的索引值。Selection也是类似的,只不过它返回的是与当前选中的数据项对应的MobileListItem对象,而不是索引值。

  当用户在一个Selection列表中做出相应的选择后,客户端浏览器上的Form窗体将那些被选择的一个或多个数据项进行相应的编码,并将这些编码信息添加到要回发到服务器的数据中,这样ASP.NET运行时就可以利用这些被回发到服务器的数据来更新Selection的一些属性,例如SelectedIndex。但是Selection并不会因为用户选择好了数据项后就自动地将数据信息回发到服务器上,而是要借助一个Command控件产生回发操作,为此你需要将这个Selection列表控件和 Command控件放置在同一个Form控件中。

[1] [2] [3] [4] [5] [6] 下一页

文章搜索
相关资讯
相关文章 相关下载
ASP.NET定时自动更新页面的
ASP.NET中为GridView添加删除提示框
在ASP.NET 2.0中使用样式、主题和皮肤
讲解用.NET编写串口程序的一点心得
理解ASP.NET与客户端缓存之HTTP协议
焦点信息