一、分页
前台代码
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging"
PageSize="3" OnDataBound="GridView1_DataBound">
<PagerSettings Mode="NextPrevious" NextPageText="下一页>>" PreviousPageText="<<上一页" />
</asp:GridView>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
<asp:GridView ID="GridView2" runat="server">
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) bindgrid();
}
void bindgrid()
{
//查询student数据库获取结果集ds
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
DataSet ds = new DataSet();
using (SqlConnection sqlconn = new SqlConnection(sqlconnstr))
{
SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
sqld.Fill(ds, "tabstudent");
}
//以数据集中名为tabstudent的DataTable作为数据源,为控件绑定数据
GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
GridView1.DataBind();
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
//分页数据绑定前设置当前页信息
Label2.Text = "共" + (GridView1.PageCount).ToString() + "页";
Label1.Text = "第" + (GridView1.PageIndex + 1).ToString() + "页";
Label3.Text = string.Format("总页数:{0},当前页:{1}", GridView1.PageCount, GridView1.PageIndex + 1);
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//设置要显示的页的索引并重新绑定数据
GridView1.PageIndex = e.NewPageIndex;
bindgrid();
}
效果图
二、编辑和删除
前台代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridViewBingding_2.aspx.cs" Inherits="WebSite9.GridViewBingding_2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating"
DataKeyNames="NO" OnRowDeleting="GridView1_RowDeleting" Height="185px"
Width="536px" AllowSorting="True">
<Columns>
<asp:BoundField DataField="No" HeaderText="NO" ReadOnly="True" SortExpression="NO" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Sex" HeaderText="Sex" />
<asp:BoundField DataField="birthday" HeaderText="birthday" />
<asp:BoundField DataField="address" HeaderText="adress" />
<asp:TemplateField HeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Height="80px" Width="80px"
ImageUrl='<%# "../images/"+ Eval("Photo")
%>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
<EmptyDataTemplate>
学号
</EmptyDataTemplate>
</asp:GridView>
</div>
</form>
</body>
</html>
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) bindgrid();
}
void bindgrid()
{
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
DataSet ds = new DataSet();
using (SqlConnection sqlconn = new SqlConnection(sqlconnstr))
{
SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
sqld.Fill(ds, "tabstudent");
}
//判断是否已经进行排序,如果是则按照ViewState中存储的信息生成排序后的DataView对象
if (ViewState["SortDirection"] == null)
GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
else
{
DataView SortedDV = new DataView(ds.Tables["tabstudent"]);
SortedDV.Sort = ViewState["SortExpression"].ToString() + " " + ViewState["SortDirection"].ToString();
GridView1.DataSource = SortedDV;
}
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bindgrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
//提交行修改
sqlconn.Open();
SqlCommand Comm = new SqlCommand();
Comm.Connection = sqlconn;
Comm.CommandText = "update student set Name=@Name,birthday=@birthday,address=@address where No=@No";
Comm.Parameters.AddWithValue("@No", GridView1.DataKeys[e.RowIndex].Value.ToString());
Comm.Parameters.AddWithValue("@Name", ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text);
Comm.Parameters.AddWithValue("@birthday", ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text);
Comm.Parameters.AddWithValue("@address", ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text);
Comm.ExecuteNonQuery();
sqlconn.Close();
sqlconn = null;
Comm = null;
GridView1.EditIndex = -1;
bindgrid();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bindgrid();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//设置数据库连接
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
sqlconn.Open();
//删除行处理
String sql = "delete from student where No='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlCommand Comm = new SqlCommand(sql, sqlconn);
Comm.ExecuteNonQuery();
sqlconn.Close();
sqlconn = null;
Comm = null;
GridView1.EditIndex = -1;
bindgrid();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["SortDirection"] == null) ViewState["SortDirection"] = "DESC";
if (ViewState["SortDirection"].ToString() == "ASC")
ViewState["SortDirection"] = "DESC";
else
ViewState["SortDirection"] = "ASC";
ViewState["SortExpression"] = e.SortExpression;
this.DataBind();
}
效果图