ASP.NET学习之分页数据绑定_GridView+AspNetPager
基本上和Repeater+AspNetPager是一样的。
前台页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView+AspNetPager.aspx.cs" Inherits="分页显示数据.GridView_AspNetPager" %> <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer"%> <!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> <style type="text/css"> /*网易风格*/ .anpager .cpb {background:#1F3A87 none repeat scroll 0 0;border:1px solid #CCCCCC;color:#FFFFFF;font-weight:bold;margin:5px 4px 0 0;padding:4px 5px 0;} .anpager a {background:#FFFFFF none repeat scroll 0 0;border:1px solid #CCCCCC;color:#1F3A87;margin:5px 4px 0 0;padding:4px 5px 0;text-decoration:none} .anpager a:hover{background:#1F3A87 none repeat scroll 0 0;border:1px solid #1F3A87;color:#FFFFFF;} /*拍拍网风格*/ .paginator { font: 11px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0; margin: 0px;} .paginator a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px} .paginator a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;} .paginator .cpb {padding: 1px 6px;font-weight: bold; font-size: 13px;border:none} .paginator a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;} /*迅雷风格*/ .pages { color: #999 } .pages a, .pages .cpb { text-decoration:none;float: left; padding: 0 5px; border: 1px solid #ddd;background: #ffff;margin:0 2px; font-size:11px; color:#000;} .pages a:hover { background-color: #E61636; color:#fff;border:1px solid #E61636; text-decoration:none;} .pages .cpb { font-weight: bold; color: #fff; background: #E61636; border:1px solid #E61636;} .code{font-weight:bold;color:blue} </style> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField HeaderText="用户ID"> <ItemTemplate><%#Eval("Uid") %></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="主题"> <ItemTemplate><%#Eval("Subject") %></ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="内容"> <ItemTemplate><%#Eval("Content") %></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <webdiyer:AspNetPager ID="AspNetPager" runat="server" FirstPageText="首页" PrevPageText="上一页" LastPageText="尾页" NextPageText="下一页" OnPageChanging="AspNetPager_PageChanged" CssClass="paginator" PageSize="5"> </webdiyer:AspNetPager> </div> </form> </body> </html>
后台代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Data.SqlClient; using System.Data; namespace 分页显示数据 { public partial class GridView_AspNetPager : System.Web.UI.Page { string sqlStr = ConfigurationManager.ConnectionStrings["MyDB"].ToString();//获得链接数据库的字符串 protected void Page_Load(object sender, EventArgs e) { //第一次加载 if (!IsPostBack) { ShowData(); } } /// <summary> /// 得到满足条件的数据集合 /// </summary> /// <returns>数据集合</returns> public DataSet GetData() { using (SqlConnection sqlConn = new SqlConnection(sqlStr)) { string sqlqueryStr = "select * from tb_LeaveWord"; SqlDataAdapter sda = new SqlDataAdapter(sqlqueryStr, sqlConn); DataSet ds = new DataSet(); sda.Fill(ds); return ds; } } /// <summary> /// 显示数据 /// </summary> public void ShowData() { DataSet ds = GetData(); //分页类 PagedDataSource pds = new PagedDataSource(); pds.DataSource = ds.Tables[0].DefaultView; //绑定数据源 pds.AllowPaging = true; pds.PageSize = this.AspNetPager.PageSize; //【注意点】设置每页的数量数,是组件Asp.NetPager的PageSize pds.CurrentPageIndex = this.AspNetPager.CurrentPageIndex - 1; //给第三方组件绑定总记录数和每页数量数 this.AspNetPager.RecordCount = ds.Tables[0].Rows.Count; this.AspNetPager.PageSize = 5; //给数据展示组件绑定数据源【数据源是分页类】【注意点:不要把数据源绑定错了】 GridView1.DataSource = pds; //绑定数据源和组件 GridView1.DataBind(); } /// <summary> /// 页码改变触发的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void AspNetPager_PageChanged(object sender, Wuqi.Webdiyer.PageChangingEventArgs e) { AspNetPager.CurrentPageIndex = e.NewPageIndex; ShowData(); } } }