使用GridView控件绑定数据源
GridView控件个人认为就是数据表格控件,它以表格的形式显示数据源中的数据。每列表示一个字段,每行表示一条记录。
GridView控件支持在页面有一下功能:
- 绑定至数据源控件。
- 内置排序功能。
- 内置分页功能。
- 内置行选择功能。
- 以编程的方式访问GridView对象模型以动态设置属性,处理事件等。
- 多个键字段。
- 用于超连接列的多个数据字段。
- 可通过主题和样式自定义外观。
绑定GridView控件到数据源的有两种方法:通过配置数据源绑定和通过代码绑定。
1.通过配置数据源绑定GridView控件
下面演示通过SqlDataSource控件配置数据源,并连接数据库,然后使用GridView控件绑定SqlDataSource数据源。
数据库表内容如:
新建一个网站,建立一个Inde.aspx页面。在工具箱->数据分类下面拽一个GridView控件和一个SqlDataSource控件出来。如下图:
接下来配置SqlDataScource控件,
接下来就要配置GridView控件了,在GridView控制中选择我们的数据源SqlDataSource控件即可,如下图
配置完成后,运行下我们的效果看下,如下图
2.通过代码绑定GridView控件
同样上面的代码可以用下面的代码完成。加载事件时写法:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace DataShowApplication
{
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//创建字符串连接
SqlConnection sqlconn = new SqlConnection ("Data Source=.\\CENA;Initial Catalog=Asp.net;Persist Security Info=True;User ID=sa;Password=123456");
SqlDataAdapter sqlda = new SqlDataAdapter("select * from DemoStu", sqlconn);
DataSet ds = new DataSet ();
sqlda.Fill(ds);
this.Data_GridView.DataSource = ds;
this.Data_GridView.DataBind();
}
}
}
自定义GridView控件的列
GridView控件中的每一列有一个DataControlField对象。
- BoundField列:默认的数据绑定类型,通常用于显示普通文本。
- CheckBoxField列:显示布尔类型的数据。绑定数据为true时,复选框数据绑定列为选中状态;绑定数据为false时,则显示未选中状态。
- CommandField列:显示用来执行选择,编辑或删除操作的预定义命令按钮。
- ImageField列:在GridView控件所在的表格中显示图片列。
- HyperLinkField列:允许将所绑定的数据以超链接的形式显示出来。开发人员可自定义绑定超连接的显示文字,超链接的URL以及打开窗口的方式等。
- ButtonField列:为GridView控件创建命令按钮,开发人员可以通过按钮来操作其所在行的数据。
- TemplateField列:允许以模版式自定义数据绑定列的内容。
实验如何在在GridView控件中添加BoundField列,从而进行数据绑定实例如下:
添加一个Index.aspx页面,添加一个GridView控件和一个SqlDataSoure控件。如下图:
要对GridView控件经行自定义列,要先取消GridView自动产生字段的功能。把GridView的AutoGeneraterColums属性设置为false就可以了。
然后设置SqlDataSource控件配置数据源,并将SqlDataSource控件指定给GridView控件的DataSourceID属性。如下图:
然后编辑GridView控件,如下图:
看下运行结果,如下图:
使用GridView控件分页显示数据
GridView控件有一个内置的分页控件,可以支持基本的分页功能。启用分页需要设置AllowPaging,PageSize属性。如下图:
然后需要写一个GridView控件的PageIndexChanging事件,写法如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DataShowApplication { public partial class IndexO : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GridViewOne_PageIndexChanging(object sender, GridViewPageEventArgs e) { //获取当前分页的索引值 this.GridViewOne.PageIndex = e.NewPageIndex; this.GridViewOne.DataBind(); } } }