数据绑定控件
通过前面的例子我们看到每次我们要显示数据的时候都要通过一个循环来显示满足条件的数据,这是一个比较麻烦的过程,为此微软定义了一系列的控件专门用于显示数据的格式,通过这些控件可以以可视化的方式查看绑定数据之后的效果。这些控件称之为数据绑定控件。在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法: DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。 DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。
DataBind ()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。
数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
今天要讲述的内容有:
DropDownList控件
ListBox控件
GridView控件
DataList控件
Repeater控件
FormView控件
DetailsView控件
DropDownList数据绑定第一项为空
2008-03-20 14:51
我们在进行数据绑定时通常把一个表的某个字段绑定到DropDownList中,我们以pubs库的jobs表为例子,我们在显示时显示job_desc字段,values值绑定job_id字段。
方法一:
使用属性设置,我们在DropDownList的items的属性中添加一列为空行,然后更改AppandBataBoundItems属性为ture.
绑定代码:
1SqlConnection conn = new
SqlConnection("server=.;uid=sa;database=pubs");
2 SqlDataAdapter dap = new SqlDataAdapter("select * from jobs",
conn);
3 DataTable dt = new DataTable();
4 dap.Fill(dt);
5 DropDownList1.Items.Clear();
6 DropDownList1.DataSource = dt;
7 DropDownList1.DataTextField = "job_desc";
8 DropDownList1.DataValueField = "job_id";
9 DropDownList1.DataBind();
这样就可以了。
方法二:
使用代码:
1
2 SqlConnection conn = new
SqlConnection("server=.;uid=sa;database=pubs"); 3 SqlDataAdapter dap = new SqlDataAdapter("select * from jobs",
conn);
4 DataTable dt = new DataTable(); 5 dap.Fill(dt);
6 DropDownList1.Items.Clear();
7 DropDownList1.DataSource = dt; 8 DropDownList1.DataTextField = "job_desc"; 9 DropDownList1.DataValueField = "job_id"; 10 DropDownList1.DataBind();
11 DropDownList1.Items.Insert(0, new ListItem("", ""));//插
入空项,此举必须放到数据绑定之后
效果:
DropDownList控件
DropDownList控件是一个相对比较简单的数据绑定控件,它在客户端被解释成
这样的HTML标记,也就是只能有一个选项处于选中状态。
DropDownList控件常见属性:
AutoPostBack 属性:这个属性的用法在讲述基本控件的时候已经讲过,是用来设置当下拉列表项发生变化时是否主动向服务器提交整个表单,默认是false,即不主动提交。如果设置为true,就可以编写它的SelectedIndexChanged事件处理代码进行相关处理(注意:如果此属性为false即使编写了 SelectedIndexChanged事件处理代码也不会马上起作用)。
DataTextField属性:设置列表项的可见部分的文字。
DataValueField属性:设置列表项的值部分。
Items属性:获取控件的列表项的集合。
SelectedIndex属性:获取或设置 DropDownList 控件中的选定项的索引。
SelectedItem属性:获取列表控件中索引最小的选定项。
SelectedValue属性:取列表控件中选定项的值,或选择列表控件中包含指定值的项。 因为在实际开发中,用户希望直观地看见选中哪个选项,而在操作数据库的时候我们更希望直接以该值对应的编号来操作,利用DataTextField 属性和DataValueField属性就可以很方便地做到这一点,这两个属性通常是数据源中的某个字段名(如果DataSource属性是 DataTable或者是DataView的话)或者范型集合中实体的属性(如果DataSource属性是 System.Collections.Generic.List
的话,则可以指定为T的属性)。
下面是DropDownList控件的例子,依然用到的是第六章中创建的表(本代码采用了单页模式):
1. <%@ Page Language="C#" %>
2. <%@ Import Namespace="System.Data" %>
3. <%@ Import Namespace="System.Data.SqlClient" %>
4.
5.
6.
46.
47.
49. DropDownList控件的例子
50.
51.
52.
59.
60.