数据绑定指的是从数据源获取数据,或者向数据源写入数据。主要有两种形式:简单数据绑定和数据控件绑定。
其中简单数据绑定分为属性绑定、表达式绑定、集合绑定和方法绑定;数据控件绑定分为ListControl 控件、GridView 控件、DataList 控件和ListView控件
2. 简单数据绑定 2.1. 属性绑定基于属性的数据绑定所涉及的属性必须要包含Get访问器,它的基本语法为:
如果在ASP页面中对属性进行了绑定,那么需要调用Page类的DataBind方法才能执行绑定操作,例如下例:
// .aspx文件
// .aspx.cs文件
// BookName属性
public string BookName {
get {
return "ASP.NET程序设计";
}
}
// BookPrice属性
public string BookPrice {
get {
return "49";
}
}
protected void Page_Load(object sender, EventArgs e){
// 调用DataBind()方法执行绑定
Page.DataBind();
}
执行结果如下:
表达式绑定的语法与属性绑定一致,它可以在属性绑定的基础上通过表达式对数据进行处理,它的语法如下:
例如在属性绑定的基础上,要查询10本书的总价格,则代码如下:
// .aspx文件
// .aspx.cs文件
// BookName属性
public string BookName {
get {
return "ASP.NET程序设计";
}
}
// BookPrice属性
public string BookPrice {
get {
return "49";
}
}
protected void Page_Load(object sender, EventArgs e){
// 调用DataBind()方法执行绑定
Page.DataBind();
}
执行结果如下所示
有一些服务器控件是多记录控件,如DropDownList控件, 这类控件即可使用集合作为数据源对其进行绑定。通常情况下,集合数据源主要包括ArrayList、Hashtabel、 DataView、 DataReader 等。
例如下面代码,实现了对DropDownList控件进行数据绑定:
// .aspx文件
protected void Page_Load(object sender, EventArgs e){
// 构建数据源
ArrayList arrayList = new ArrayList();
arrayList.Add("iisexpress");
arrayList.Add("assembly");
arrayList.Add("Windows");
// 指定数据源
DropDownList1.DataSource = arrayList;
// 数据绑定
DropDownList1.DataBind();
}
执行结果如下:
方法的绑定与属性绑定的语法是一致的,只不过把绑定对象更替为了方法,例如下面的代码:
// .aspx文件
// .aspx.cs文件
public string PriceTest(string _price) {
return _price;
}
protected void Page_Load(object sender, EventArgs e){
// 调用DataBind()方法执行绑定
Page.DataBind();
}
执行结果如下:
ListControl控件用来定义所有列表类型控件的所有属性方法和事件,是一个抽象基类,它能够控制的控件主要包括:DropDownList控件、ListBox控件、CheckBoxList控件、RadioButtonList控件。
ListControl控件能够指定能够用来填充列表控件的数据源,其中与数据绑定修改的属性有:
DataSource属性,用来设置数据源 DataTextField属性,用来指定提供文本内容的数据源字段 DataValueField属性,用来指定提供值的数据源字段例如下面代码,将图书列表以DropDownList控件进行显示,当用户选择了DropDownList控件中的某个值后,页面会进行相应的信息更新。
// .aspx文件
// .aspx.cs文件
protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack) {
SqlConnection sqlConnection = new SqlConnection("Server=DEITIVOD;Database=db_LibraryMS;User Id=sa;pwd=admin");
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("select book_code, book_name from tb_bookinfo;", sqlConnection);
// 将查询到的数据放入一个DataSet
DataSet dataSet = new DataSet();
sqlDataAdapter.Fill(dataSet);
// 对DropDownList执行指定数据源和数据绑定
DropDownList1.DataSource = dataSet;
DropDownList1.DataTextField = "book_name"; // 指定要显示的字段
DropDownList1.DataValueField = "book_code"; // 指定要绑定的主键值
DropDownList1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){
Label3.Text = DropDownList1.SelectedValue;
Label5.Text = DropDownList1.SelectedItem.Text;
}
执行效果如下:
数据库中的tb_bookinfo数据表的数据如下所示:
ASP页面中显示的数据:
GridView控件可称之为数据表格控件,它以表格的形式显示数据源中的数据,每列表示一个字段,而每行表示一条 记录,可以将其理解为数据库技术中的视图。
3.2.2. 使用GridView控件绑定数据源使用GridView控件绑定数据源主要用到
DataSource属性,用来指定数据源 DataBind方法,用来执行数据绑定如下代码实现了将SQL Server数据库中的数据通过GridView控件显示到ASP页面中
// .aspx文件
// .aspx.cs文件
protected void Page_Load(object sender, EventArgs e){
SqlConnection sqlConnection = new SqlConnection("Server=DEITIVOD;Database=db_LibraryMS;User Id=sa;pwd=admin");
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("select * from leaveword;", sqlConnection);
DataSet dataSet = new DataSet();
sqlDataAdapter.Fill(dataSet);
GridView1.DataSource = dataSet; // 指定数据集
GridView1.DataBind(); // 执行数据绑定
}
数据库中leaveword数据表的数据如下所示:
执行效果如下,ASP页面中显示的数据:
效果如下,左边是直接指定数据源时的表格,右边是对列自定义的表格:
原创文章 231获赞 1114访问量 147万+
关注
他的留言板
展开阅读全文
作者:白水偷偷画工图