1、GridView实现分页
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class learngridview : System.Web.UI.Page
{
//Response.Write(Connection.getonnection());
SqlConnection myconn = Connection.getonnection();
protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
}
protected void gridview_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gridview.PageIndex = e.NewPageIndex;
BindGrid();
}
public void BindGrid()
{
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("select * from user_table", myconn);
DataSet dataSet = new DataSet();
sqlDataAdapter.Fill(dataSet, "mydata");
gridview.DataSource = dataSet.Tables["mydata"];
gridview.DataBind();
}
}
注意:
1、修改GridView控件的属性,使之允许分页。(AllowPaging=True)
2、点击时间按钮,双击PageIndexChanging,在该函数中写相应事件代码。
3、protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
}
GridView控件的删除,编辑:
源代码:
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
public partial class GridView_ADO : System.Web.UI.Page
{
MySqlConnection mysqlconnection = Conn.createCon();
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
BindGrid();
}
protected void BindGrid()
{
MySqlDataAdapter dataAdapter2=new MySqlDataAdapter("select * from user",mysqlconnection);
DataSet dataSet = new DataSet();
dataAdapter2.Fill(dataSet, "AAA");
GridView1.DataSource = dataSet.Tables["AAA"];
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGrid();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstring = "delete from user where user_id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
//Response.Write(GridView1.DataKeys[e.RowIndex].Value.ToString());
MySqlCommand cmd = new MySqlCommand(sqlstring, mysqlconnection);
mysqlconnection.Open();
cmd.ExecuteNonQuery();
mysqlconnection.Close();
BindGrid();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//编辑
this.GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新
string user_id = this.GridView1.DataKeys[e.RowIndex].Value.ToString();
string user_name = null;
user_name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
string password = null;
password = ((TextBox) GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
string updatesql = "update user set user_name='" + user_name + "',user_password='" + password + "' where user_id='" + user_id + "'";
Response.Write(updatesql);
MySqlCommand cmd = new MySqlCommand(updatesql, mysqlconnection);
mysqlconnection.Open();
cmd.ExecuteNonQuery();
mysqlconnection.Close();
this.GridView1.EditIndex = 0;
BindGrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
//取消编辑
GridView1.EditIndex = -1;
BindGrid();
}
}
调试中的几点错误:
1、当删除的时候,return confirm("确定要删除吗");
将删除设置为:
然后在编辑模板中就会有该删除模板。
2、其他的字段别设置为TemplateFileld
否则保持:
string user_name = null;
user_name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
string password = null;
password = ((TextBox) GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
强制类型转换异常。
3、一般执行数据绑定的时候都这么写。
在page_Load事件下添加的代码:
1当某个页面被请求的时候都会触发page_load事件
2 IspostBack 属性的返回植是 null 类型, 用来判断这个页面是不是第一次运行.
Page.IsPostBack==false表示:该页是第一次生成
Page.IsPostBack==true表示:该页不是第一次生成,可能是用户点后退
做这个判断后可以减轻服务器端的负担,避免不必要的重复进行数据帮定
课本166-181
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
public partial class GridView_ADO : System.Web.UI.Page
{
MySqlConnection mysqlconnection = Conn.createCon();
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
BindGrid();
}
protected void BindGrid()
{
MySqlDataAdapter dataAdapter2=new MySqlDataAdapter("select * from user",mysqlconnection);
DataSet dataSet = new DataSet();
dataAdapter2.Fill(dataSet, "AAA");
GridView1.DataSource = dataSet.Tables["AAA"];
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGrid();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstring = "delete from user where user_id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
//Response.Write(GridView1.DataKeys[e.RowIndex].Value.ToString());
MySqlCommand cmd = new MySqlCommand(sqlstring, mysqlconnection);
mysqlconnection.Open();
cmd.ExecuteNonQuery();
mysqlconnection.Close();
BindGrid();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//编辑
this.GridView1.EditIndex = e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新
string user_id = this.GridView1.DataKeys[e.RowIndex].Value.ToString();
string user_name = null;
user_name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
string password = null;
password = ((TextBox) GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
string updatesql = "update user set user_name='" + user_name + "',user_password='" + password + "' where user_id='" + user_id + "'";
Response.Write(updatesql);
MySqlCommand cmd = new MySqlCommand(updatesql, mysqlconnection);
mysqlconnection.Open();
cmd.ExecuteNonQuery();
mysqlconnection.Close();
this.GridView1.EditIndex = 0;
BindGrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
//取消编辑
GridView1.EditIndex = -1;
BindGrid();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
//排序
if ((string)ViewState["Order"] == "ASC")
ViewState["Order"] = "DESC";
else
ViewState["Order"] = "ASC";
MySqlDataAdapter sda = new MySqlDataAdapter("select * from user",mysqlconnection);
DataSet ds = new DataSet();
sda.Fill(ds,"emp");
ds.Tables["emp"].DefaultView.Sort = e.SortExpression + " " + ViewState["Order"].ToString();
this.GridView1.DataSource = ds.Tables["emp"].DefaultView;
this.GridView1.DataBind();
}
}