ASP.NET分页控件

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PageApart.ascx.cs" Inherits="WebApplication2.PageApart" %>
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">首页</asp:LinkButton>
&nbsp;<asp:LinkButton ID="LinkButton2" runat="server"
    onclick="LinkButton2_Click">上一页</asp:LinkButton>
&nbsp;<asp:LinkButton ID="LinkButton3" runat="server"
    onclick="LinkButton3_Click">下一页</asp:LinkButton>
&nbsp;<asp:LinkButton ID="LinkButton4" runat="server"
    onclick="LinkButton4_Click">尾页</asp:LinkButton>
&nbsp;<asp:Label ID="Label1" runat="server" Text="页码提示"></asp:Label>
&nbsp;<asp:TextBox ID="TextBox1" runat="server" Width="28px">1</asp:TextBox>
&nbsp;<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
    Text="Go" />
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace WebApplication2
{
    public partial class PageApart : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //第一次加载
                //显示默认页面的数据
                GoPage();
            }
        }

        int pageSize = 10;
        //页码大小
        public int PageSize
        {
            get { return pageSize; }
            set { pageSize = value; }
        }

        string table = "";
        //要分页的表名
        public string Table
        {
            get { return table; }
            set { table = value; }
        }

        string primaryKey = "";
        //表中主键名
        public string PrimaryKey
        {
            get { return primaryKey; }
            set { primaryKey = value; }
        }

        string fileds = "*";//stuid,sex,age,name
        //要查询的字段
        public string Fileds
        {
            get { return fileds; }
            set { fileds = value; }
        }

        //当前显示的页码
        public int PageIndex
        {
            get { return Convert.ToInt32( TextBox1.Text);  }
            set { TextBox1.Text=value.ToString(); }
        }

        #region 分页数据的绑定控件
        GridView gv;

        public GridView Gv
        {
            get { return gv; }
            set { gv = value; }
        }

        DataList dl;

        public DataList Dl
        {
            get { return dl; }
            set { dl = value; }
        }

        Repeater rp;

        public Repeater Rp
        {
            get { return rp; }
            set { rp = value; }
        }

        #endregion

        //分页的sql,30~40
        string sql = "select top {1} {4} from {0} where {3} not in (select top {2} {3} from {0})";

        string connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"];

        public int GetCount(string str)//获取总记录数
        {
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            SqlCommand cmd = new SqlCommand(str,conn);
            object obj = cmd.ExecuteScalar();
            conn.Close();
            return Convert.ToInt32(obj);
        }

        public DataTable GetTable(string str)//得到列表
        {
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            SqlCommand cmd = new SqlCommand(str, conn);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            conn.Close();
            return dt;
        }

        //显示页码对应的数据
        public void GoPage()
        {
            //1.查询总记录数
            string sqlCount = "select count(1) from " + table;
            int count = GetCount(sqlCount);
            int pageCount = (count % pageSize == 0) ? (count / pageSize) : (count / pageSize + 1);
            ViewState["pageCount"] = pageCount;//把总页数存放到viewState中

            //检测要显示的页面是不是合理
            if (PageIndex > pageCount)
            {
                PageIndex = pageCount;
            }
            if (PageIndex < 1)
            {
                PageIndex = 1;
            }
            Label1.Text = "共" + pageCount + "页/总记录:" + count;

            //2.显示数据
            sql = string.Format(sql, table, pageSize, (PageIndex-1) * pageSize, primaryKey, fileds);
            DataTable dt = GetTable(sql);
            if (gv!=null)
            {
                gv.DataSource = dt;
                gv.DataBind();
            }
            if (dl!=null)
            {
                dl.DataSource = dt;
                dl.DataBind();
            }
            if (rp!=null)
            {
                rp.DataSource = dt;
                rp.DataBind();
            }

        }
        //首页
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            PageIndex = 1;
            GoPage();
        }
        //上一页
        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            PageIndex--;
            GoPage();
        }
        //下一页
        protected void LinkButton3_Click(object sender, EventArgs e)
        {
            PageIndex++;
            GoPage();
        }
        //尾页,最后一页
        protected void LinkButton4_Click(object sender, EventArgs e)
        {
            PageIndex = Convert.ToInt32(ViewState["pageCount"]);
            GoPage();
        }
        //跳转到某页
        protected void Button1_Click(object sender, EventArgs e)
        {
            PageIndex = Convert.ToInt32(TextBox1.Text);
            GoPage();
        }

    }
}
时间: 2024-08-05 14:37:11

ASP.NET分页控件的相关文章

asp.net分页控件使用详解【附实例下载】

本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧 一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer"

asp.net分页控件CSS

.aspx代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sample3_DataPager.aspx.cs" Inherits="Sample_03_DataPager" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&nbsp条记录&nbsp--&nbsp第&nbsp2&nbsp页&nbsp--&nbsp共&nbsp3&nbsp页</td><td align="right"><a id="Orac

asp.net分页控件库

AspNetPager分页控件 AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码: 1.首先到www.webdiyer.com下载最新的AspNetPager.dll,直接在vs2005中添加引用即可. 2.在页面上注册控件,引入该控件,当然,需要在页面中使用一个数据载体,我这里使用的是repeater控件. <%=AspNetPager Namespace"&q

asp.net 分页控件

好久不用webform了,这次做的项目又要使用webform(微软推荐使用的是mvc),闲着没事儿干了的时候写个分页控件出来,废话不多说直接上代码 [ DefaultEvent("Paging"), DefaultProperty("Text"), AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPer

对自写的Asp.Net分页控件的应用方式(异步无刷新分页)

前台代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> <link href="css/table.css&quo

Asp.Net数据控件引用AspNetPager.dll分页

今天与大家分享一下"Asp.Net数据控件引用AspNetPager.dll分页"首先声明以下几点: 1.也许讲解有点初级,希望高手不要"喷"我,因为我知道并不是每一个人都是高手,我也怕高手们说我装13,小生不才: 2.如有什么不对的地方,还希望大家指出,一定虚心学习: 3.本文属于作者原创,尊重他人劳动成果,转载请注明作者,谢谢. 下面开讲: 第一步:首先是下载一个AspNetPager.dll 下载地址 http://files.cnblogs.com/tand

asp.net 分页-自己写分页控件

去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认,这个控件参考了别人的,但是其实里面的原理都相同,差异只是展现方式而已. 去年就在做一个自己的后台系统,刚开始用的asp.net,做了一部分就没有做了,因为缺少权限控制类别.后面转为用asp.net mvc4做,也只是做了一部分,觉得不太方便,也许是我不太会用.再用ajax+ashx做了一部分,虽然

ASP.NET Repeater控件实现简单分页

早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pageddatasource(v=vs.110).aspx 想起以前Insus.NET只对Gridview和DataList控件进行自定义分页.<GridView和DataList分页组件与用户控件>http://www.cnblogs.com/insus/archive/2009/03/19/14