数据绑定列表将数据库中的一组数据显示给用户并等待用户从中进行选择ASPNET为用户选择提供了四种类型的列表DropDownListListBox RadioButto}List和CheckBoxList选择列表中的选择可以通过硬编码(静态地)添加也可以从数据源控件(动态地)添加在用户选择了一个值之后该值可以在相同页面的代码或其他控件中使用甚至可以在其他页面的控件中使用
本节的主题(需要用户进行选择的列表)很容易和名为ASPNET DataList的控件相混淆该控件只显示数据而无需用户进行选择本章后面将讨论ASPNET DataList控件
这个选择控件都支持一对容易让人混淆的属性第一个是DataTextField属性它决定了用户将要看到的文本相关但是不同的是DataValueField属性该属性保存着在站点内部用于处理用户选择的值例如DataTextField控件可能会显示用户名和所在城市的组合字符串但这个长的混合的值对于从Customers表中选择单个用户没有用因此需要将控件的DataValueField属性设置为客户的ID号这将使得您可以在代码中惟一地判断订单来自哪个客户当为列表控件的DataText和DataValue设置不同的字段时两个字段都必须包含在由相应的数据源控件获得的字段列表中
所有选择列表控件都有另一个重要的属性AutoPostBack将在列表中的选择发生改变时自动回送到服务器如果在回送事件中需要执行一些代码以反映用户的选择那么这是非常关键的例如根据用户在列表框中的选择重新呈现一个GridView控件以显示一组受限的记录
可以通过三种方法向列表中添加数据项第一种方法使用单独的ASPNET 标记添加数据项第二种方法将列表绑定到一个数组中的值最后一种方法从数据源中读取数据项
使用单独的ASPNET 标记添加列表数据项
如果数据项相对而言是静态的(例如州或省的名称清单)则可以使用硬编码添加数据项虽然代码会比较长但它的执行速度比打开一个到数据源的连接要快注意在某些情况下虽然最初的数据项可能是静态的(州的名称清单)但出现在选择列表中的数据项却可能是动态的(只显示有客户的州)可以使用<asp:Listitem>标记添加数据项如下面的代码所示在这个示例中您创建了一个下拉列表供用户选择球员的位置您希望用户看到位置的完整名称(例如Left Back)因此把这个值赋给Text属性在用户做出选择之后作为程序员您希望实际处理这个位置的代码所以将代码赋给Value属性另外请注意可以将Central Defender位置设置为默认选项例如在下面的代码中第一个数据项是针对Goalkeeper的单词Goalkeeper将作为文本出现在列表框中而值GK则是当用户选择Goalkeeper时您需要处理的代码(DataTextField和DataValueField的概念将稍后解释)
<asp:DropDownList ID=DropDownList runat=server>
<asp:ListItem Value=GK>Goalkeeper</asp:ListItem>
<asp:ListItem Value=LB>Left Back</asp:ListItem>
<asp:ListItem Value=RB>Right Back</asp:ListItem>
<asp:ListItem Value=CD Selected=true>Central Defender</asp:ListItem>
</asp:DropDownList>
ASPNET 入门教程完整版
[] [] [] []