gridView的一些使用总结
GridView用于在网格中显示表格数据
DataSourceID属性:获取或设置对象,数据绑定控件从该对象中检索其数据项列表(不用)
1.数据绑定
GridView用于数据绑定时可将结果存入其DataSource属性中,然后执行其方法DataBind()进行数据绑定。
Sample1:
string sqlText = "select * from dbbase_table";
gvInfo.DataSource = dbBase.ExecuteSQLGetDataTable(sqlText);//用DBBase中类获取数据源
gvInfo.DataBind();//绑定
Sample2:
//连接数据库字符串
string strCon = "server = HSY-B1CB094F4C4""SQLEXPRESS; user id = stu; pwd = stu; database = blog";
//ADO.NET中连接数据库类
SqlConnection sqlcon = new SqlConnection(strCon);
//SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。
SqlDataAdapter myda = new SqlDataAdapter(sqlText, sqlcon);
//从数据源中检索到的数据在内存中的缓存,由一组 DataTable 对象组成
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds);// SqlDataAdapter通过T-SQL语句Fill实现DataSet 和 SQL Server 之间的桥接
gvInfo.DataSource = myds;
gvInfo.DataBind();
2.实现分页功能
AllowPaging用于启用分页功能,PageIndex用于获取或显示当前显示页的索引;PageSize用于获取或设置GridView控件在每页上所显示的记录数目。
实现分页功能时还需设置一个事件
protected void gvInfo_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvInfo.PageIndex = e.NewPageIndex;
gvInfo.DataBind();
}
3.选中,编辑,删除
对于编辑,删除操作,操作过后必定需要对其进行重新绑定操作,故可以首先编写一个重新绑定的函数,如下:
protected void ReBind()
{
string sqlText = "select * from dbbase_table";
gvInfo.DataSource = dbBase.ExecuteSQLGetDataTable(sqlText);
gvInfo.DataBind();
}
<1>删除
删除操作时必须确定一个值以区别这一行,这里需节哀那个设置DataKeyNames属性
通过gvInfo.DataKeys[e.RowIndex].Value.ToString()可以获得DataKeys的值
protected void gvInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlText = "delete from dbbase_table where name = '"+ gvInfo.DataKeys[e.RowIndex].Value.ToString()+"'";
dbBase.ExecuteSQL(sqlText);
gvInfo.EditIndex = -1;
ReBind();
Response.Redirect("index.aspx");
}
<2>更新
1. 选中编辑列
protected void gvInfo_RowEditing(object sender, GridViewEditEventArgs e)
{
gvInfo.EditIndex = e.NewEditIndex;//选中编辑列
ReBind();
}
2. 编辑内容
可以在updating方法中书写更新语句,更新时Page_Load方法中一定要书写if(!IsPostBack){…}语句,否则更新无效。
获取某一项值可以用
((TextBox) (gvInfo.Rows[e.RowIndex].Cells[n].Controls[0])).Text.ToString().Trim()
获取的是第n个空格中的值
protected void gvInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlText = "update dbbase_table set age = "
+Convert.ToInt32(((TextBox) (gvInfo.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim())+", city = '"
+((TextBox) (gvInfo.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +"' where name = '"
+gvInfo.DataKeys[e.RowIndex].Value.ToString()+"'";
dbBase.ExecuteSQL(sqlText);
ReBind();
Response.Redirect("index.aspx");
}
- 取消编辑
protected void gvInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvInfo.EditIndex = -1;//取消
ReBind();
Response.Redirect("index.aspx");
}
4.模板的使用
可以拖拉控件到指定模板
对模板的绑定需要bind()语句
GridView用于在网格中显示表格数据
DataSourceID属性:获取或设置对象,数据绑定控件从该对象中检索其数据项列表(不用)
1.数据绑定
GridView用于数据绑定时可将结果存入其DataSource属性中,然后执行其方法DataBind()进行数据绑定。
Sample1:
string sqlText = "select * from dbbase_table";
gvInfo.DataSource = dbBase.ExecuteSQLGetDataTable(sqlText);//用DBBase中类获取数据源
gvInfo.DataBind();//绑定
Sample2:
//连接数据库字符串
string strCon = "server = HSY-B1CB
//ADO.NET中连接数据库类
SqlConnection sqlcon = new SqlConnection(strCon);
//SqlDataAdapter 是 DataSet 和 SQL Server 之间的桥接器,用于检索和保存数据。
SqlDataAdapter myda = new SqlDataAdapter(sqlText, sqlcon);
//从数据源中检索到的数据在内存中的缓存,由一组 DataTable 对象组成
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds);// SqlDataAdapter通过T-SQL语句Fill实现DataSet 和 SQL Server 之间的桥接
gvInfo.DataSource = myds;
gvInfo.DataBind();
2.实现分页功能
AllowPaging用于启用分页功能,PageIndex用于获取或显示当前显示页的索引;PageSize用于获取或设置GridView控件在每页上所显示的记录数目。
实现分页功能时还需设置一个事件
protected void gvInfo_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvInfo.PageIndex = e.NewPageIndex;
gvInfo.DataBind();
}
3.选中,编辑,删除
对于编辑,删除操作,操作过后必定需要对其进行重新绑定操作,故可以首先编写一个重新绑定的函数,如下:
protected void ReBind()
{
string sqlText = "select * from dbbase_table";
gvInfo.DataSource = dbBase.ExecuteSQLGetDataTable(sqlText);
gvInfo.DataBind();
}
<1>删除
删除操作时必须确定一个值以区别这一行,这里需节哀那个设置DataKeyNames属性
通过gvInfo.DataKeys[e.RowIndex].Value.ToString()可以获得DataKeys的值
protected void gvInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlText = "delete from dbbase_table where name = '"+ gvInfo.DataKeys[e.RowIndex].Value.ToString()+"'";
dbBase.ExecuteSQL(sqlText);
gvInfo.EditIndex = -1;
ReBind();
Response.Redirect("index.aspx");
}
<2>更新
1. 选中编辑列
protected void gvInfo_RowEditing(object sender, GridViewEditEventArgs e)
{
gvInfo.EditIndex = e.NewEditIndex;//选中编辑列
ReBind();
}
2. 编辑内容
可以在updating方法中书写更新语句,更新时Page_Load方法中一定要书写if(!IsPostBack){…}语句,否则更新无效。
获取某一项值可以用
((TextBox) (gvInfo.Rows[e.RowIndex].Cells[n].Controls[0])).Text.ToString().Trim()
获取的是第n个空格中的值
protected void gvInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlText = "update dbbase_table set age = "
+Convert.ToInt32(((TextBox) (gvInfo.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim())+", city = '"
+((TextBox) (gvInfo.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +"' where name = '"
+gvInfo.DataKeys[e.RowIndex].Value.ToString()+"'";
dbBase.ExecuteSQL(sqlText);
ReBind();
Response.Redirect("index.aspx");
}
- 取消编辑
protected void gvInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvInfo.EditIndex = -1;//取消
ReBind();
Response.Redirect("index.aspx");
}
4.模板的使用
可以拖拉控件到指定模板
对模板的绑定需要bind()语句