码迷,mamicode.com
首页 > 其他好文 > 详细

分页控件

时间:2016-03-04 19:14:08      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

<%@ 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();
        }
        


    }
}

 

分页控件

标签:

原文地址:http://www.cnblogs.com/xiaz/p/5243010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!