【2017-5-24】WebForm 分页功能

实体类

    public int ids { get; set; }
    public string code { get; set; }
    public string name { get; set; }
    public decimal oil { get; set; }
    public decimal price { get; set; }

封装类

注意引用using System.Data.SqlClient;

SqlConnection conn = null;
    SqlCommand cmd = null;

    public carData()
    {
        conn = new SqlConnection("server=.;database=One;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }

    //查询全部
    public List<car> SelectAll()
    {
        List<car> clist = new List<car>();
        cmd.CommandText = "select * from car";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                car c = new car();
                c.ids = Convert.ToInt32(dr["ids"]);
                c.code = dr["code"].ToString();
                c.name = dr["name"].ToString();
                c.oil = Convert.ToDecimal(dr["oil"]);
                c.price = Convert.ToDecimal(dr["price"]);
                clist.Add(c);
            }
        }
        conn.Close();
        return clist;
    }

    //分页查询
    public List<car> SelectAll(int count, int number)
    {
        List<car> clist = new List<car>();
        cmd.CommandText = "select top " + count + " * from car where ids not in(select top " + (count * (number - 1)) + " ids from car)";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                car c = new car();
                c.ids = Convert.ToInt32(dr["ids"]);
                c.code = dr["code"].ToString();
                c.name = dr["name"].ToString();
                c.oil = Convert.ToDecimal(dr["oil"]);
                c.price = Convert.ToDecimal(dr["price"]);
                clist.Add(c);
            }
        }
        conn.Close();
        return clist;
    }

    //查询数据条数
    public int SelectCount()
    {
        int a = 0;
        cmd.CommandText = "select count(*) from car";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        dr.Read();
        a = Convert.ToInt32(dr[0]);
        conn.Close();
        return a;
    }

    //条件查询
    public List<car> SelectAll(string tsql, Hashtable hs)
    {
        List<car> clist = new List<car>();
        cmd.CommandText = tsql;
        cmd.Parameters.Clear();
        foreach(string h in hs.Keys)
        {
        cmd.Parameters.AddWithValue(h,hs[h]);
        }
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                car c = new car();
                c.ids = Convert.ToInt32(dr["ids"]);
                c.code = dr["code"].ToString();
                c.name = dr["name"].ToString();
                c.oil = Convert.ToDecimal(dr["oil"]);
                c.price = Convert.ToDecimal(dr["price"]);
                clist.Add(c);
            }
        }
        conn.Close();
        return clist;
    }

前端

<table style="width: 100%; background-color: #0094ff; text-align: center;">
            <tr>
                <td>Ids</td>
                <td>编号</td>
                <td>名称</td>
                <td>油耗</td>
                <td>价格</td>
            </tr>

            <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    <tr style="background-color: #fff;">
                        <td><%#Eval("ids") %></td>
                        <td><%#Eval("code") %></td>
                        <td><%#Eval("name") %></td>
                        <td><%#Eval("oil") %></td>
                        <td><%#Eval("price") %></td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
        </table>
        <br />

        当前第【<asp:Label ID="Label1" runat="server" Text="1"></asp:Label>】页&nbsp;&nbsp;&nbsp;&nbsp;
        共【<asp:Label ID="Label2" runat="server" Text="1"></asp:Label>】页&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button1" runat="server" Text="首页" />&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button2" runat="server" Text="上一页" />&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button3" runat="server" Text="下一页" />&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button4" runat="server" Text="尾页" />&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList><asp:Button ID="Button5" runat="server" Text="跳转" />

后台

int count = 5;//每页显示条数
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Repeater1.DataSource = new carData().SelectAll(count, 1);
            Repeater1.DataBind();
            Label2.Text = MaxPageNumber().ToString();
            for (int i = 1; i <= MaxPageNumber(); i++)
            {
                ListItem li = new ListItem(i.ToString(),i.ToString());
                DropDownList1.Items.Add(li);
            }
        }
        //改变按钮是否可用状态
        if (Label1.Text == "1")
        {
            Button1.Enabled = false;
            Button2.Enabled = false;
        }
        if (Label1.Text != "1")
        {
            Button1.Enabled = true;
            Button2.Enabled = true;
        }
        if (Label1.Text == MaxPageNumber().ToString())
        {
            Button3.Enabled = false;
            Button4.Enabled = false;
        }
        if (Label1.Text != MaxPageNumber().ToString())
        {
            Button3.Enabled = true;
            Button4.Enabled = true;
        }
        //按钮点击事件
        Button4.Click += Button4_Click;
        Button3.Click += Button3_Click;
        Button2.Click += Button2_Click;
        Button1.Click += Button1_Click;
        Button5.Click += Button5_Click;
    }

    //跳转
    void Button5_Click(object sender, EventArgs e)
    {
        int a = Convert.ToInt32(DropDownList1.SelectedValue);
        //将下一页数据绑定到
        Repeater1.DataSource = new carData().SelectAll(count, a);
        Repeater1.DataBind();

        //将当前显示的页数改变到页面上去
        Label1.Text = a.ToString();
        //改变按钮是否可用状态
        if (Label1.Text == "1")
        {
            Button1.Enabled = false;
            Button2.Enabled = false;
        }
        if (Label1.Text != "1")
        {
            Button1.Enabled = true;
            Button2.Enabled = true;
        }
        if (Label1.Text == MaxPageNumber().ToString())
        {
            Button3.Enabled = false;
            Button4.Enabled = false;
        }
        if (Label1.Text != MaxPageNumber().ToString())
        {
            Button3.Enabled = true;
            Button4.Enabled = true;
        }
    }

    //首页
    void Button1_Click(object sender, EventArgs e)
    {
        //将下一页数据绑定
        Repeater1.DataSource = new carData().SelectAll(count, 1);
        Repeater1.DataBind();

        //将当前显示的页数改变
        Label1.Text = "1";
        //改变按钮是否可用状态
        if (Label1.Text == "1")
        {
            Button1.Enabled = false;
            Button2.Enabled = false;
        }
        else
        {
            Button1.Enabled = true;
            Button2.Enabled = true;
        }
    }

    //上一页
    void Button2_Click(object sender, EventArgs e)
    {
        //获取当前页数,计算上一页页数
        int NextNumber = Convert.ToInt32(Label1.Text) - 1;
        if (NextNumber < 1)
        { return; }
        //将上一页数据绑定
        Repeater1.DataSource = new carData().SelectAll(count, NextNumber);
        Repeater1.DataBind();

        //将当前显示的页数改变
        Label1.Text = NextNumber.ToString();
        //改变按钮是否可用状态
        if (Label1.Text == "1")
        {
            Button1.Enabled = false;
            Button2.Enabled = false;
        }
        else
        {
            Button1.Enabled = true;
            Button2.Enabled = true;
        }
        if (Label1.Text == MaxPageNumber().ToString())
        {
            Button3.Enabled = false;
            Button4.Enabled = false;
        }
        else
        {
            Button3.Enabled = true;
            Button4.Enabled = true;
        }
    }

    //下一页
    void Button3_Click(object sender, EventArgs e)
    {
        //获取当前页数,计算下一页页数
        int NextNumber = Convert.ToInt32(Label1.Text) + 1;
        if (NextNumber > MaxPageNumber())
        { return; }
        //将下一页数据绑定
        Repeater1.DataSource = new carData().SelectAll(count, NextNumber);
        Repeater1.DataBind();

        //将当前显示的页数改变
        Label1.Text = NextNumber.ToString();
        //改变按钮是否可用状态
        if (Label1.Text == MaxPageNumber().ToString())
        {
            Button3.Enabled = false;
            Button4.Enabled = false;
        }
        else
        {
            Button3.Enabled = true;
            Button4.Enabled = true;
        }
        if (Label1.Text == "1")
        {
            Button1.Enabled = false;
            Button2.Enabled = false;
        }
        else
        {
            Button1.Enabled = true;
            Button2.Enabled = true;
        }
    }

    //尾页
    void Button4_Click(object sender, EventArgs e)
    {
        //将下一页数据绑定
        Repeater1.DataSource = new carData().SelectAll(count, MaxPageNumber());
        Repeater1.DataBind();

        //将当前显示的页数改变
        Label1.Text = MaxPageNumber().ToString();
        //改变按钮是否可用状态
        if (Label1.Text == MaxPageNumber().ToString())
        {
            Button3.Enabled = false;
            Button4.Enabled = false;
        }
        else
        {
            Button3.Enabled = true;
            Button4.Enabled = true;
        }
    }

    //取最大页数
    public int MaxPageNumber()
    {
        int a = 0;
        int maxcount = new carData().SelectCount();
        decimal d = Convert.ToDecimal(maxcount) / count;
        a = Convert.ToInt32(Math.Ceiling(d));
        return a;
    }
时间: 2024-11-02 23:34:42

【2017-5-24】WebForm 分页功能的相关文章

WinForm DataGridView分页功能

WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件  .CS: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.T

django高级应用(分页功能)

django高级应用(分页功能) 1.原生分页应用 前端html代码 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <ul> 9 {% for item in posts.obj

MyBatis精通之路之分页功能的实现

MyBatis精通之路之分页功能的实现(数组分页.sql分页.拦截器,RowBounds分页) 原创 2017年04月27日 21:34:48 标签: mybatis / java / j2ee / mysql / 分页 4162 前言:学习hibernate & mybatis等持久层框架的时候,不外乎对数据库的增删改查操作.而使用最多的当是数据库的查找操作, 而当数据库数据过多时,符合查找条件的数据可能也会是很庞大的数据.往往在这个时候,我们都不会希望一次性的将所有的数据一起性读取出来,并且

网站前端_JavaScript-项目经验.纯JavaScript实现客户端的分页功能?

项目简介: 说明: 此项目属于医院电子病例系统,由于历史原因,整个系统后台基于Java开发,前端使用Html+CSS+原生JavaScript,项目功能模块要求必须纯JS实现,而此次的任务是为住院病例页面编写一个客户端分页功能. 实现思路: 1. 基于客户端分页的前提是数据已经加载完毕,所以此功能模块必须等待数据加载完毕后再加载 2. 基于客户端分页的首页只需要显示24个患者信息即可 3. 上一页/当前页/下一页功能类似,基于当前页面传递同样的参数(页码, 限制患者数),所以自然而然想到了递归,

drupal 7 实现自定义 pager 分页功能

最近在写一个drupal界面,要显示一个表格,需要分页.但是drupal自带的分页都是基于SQL查询的,而我这次要做的是从mongo中查询数据显示(虽然是从mongo中查询,其实是抽象出了一个model),所以就想研究一下如何在drupal中实现不基于SQL查询的分页功能. 看了drupal官方文档,发现drupal默认的pager非常依赖于SQL查询,很难满足我的需求.后来虽然找到一个从mongo查询实现的分页,但是想了想还是决定自己写一个比较通用的工具,将来需要分页的地方多着呢! 1 fun

JDBC使用数据库来完成分页功能

本篇讲诉如何在页面中通过操作数据库来完成数据显示的分页功能.当一个操作数据库进行查询的语句返回的结果集内容如果过多,那么内存极有可能溢出,所以在大数据的情况下分页是必须的.当然分页能通过很多种方式来实现,而这里我们采用的是操作数据库的方式,而且在这种方式中,最重要的是带限制条件的查询SQL语句: select name from user limit m,n 其中m与n为数字.n代表需要获取多少行的数据项,而m代表从哪开始(以0为起始),例如我们想从user表中先获取前五行数据项(1-5)的na

django分页功能,templatetags的应用

django 将不会将得到的html代码自动转化 from django.utils.html import format_html html =''' <a href='http://www.china.cn'>中国</a>''' format_html(html) django分页 分页功能基本操作 from django.core.import Paginator li=[11,12,13,22,24,25] p=Paginator(li,3) #将li传入,每页显示3条 p

分页功能的实现——Jdbc &amp;&amp; JSP

@目录 什么是分页 ? 两个子模块功能的问题分析 和 解决方案 有条件查和无条件查询的影响 和 解决方案 项目案例: mysql + commons-dbutils+itcast-tools+BaseServlet + 分页+JSP+JSTL+EL+MVC模式 什么是分页? 如上所示,就是分页  ,不用多说了 子模块功能的问题分析 和 解决方案 @总功能分析  常规JDBC中,点击查询或输入条件查询,在页面中可显示查询出的所有记录,有多少记录就显示多少.在这种项目的基础上增加分页功能 . @分页

Net 分页功能的实现

首先写一个接口 1 2 3 4 5 6 public interface IPagedList { int CurrentPageIndex { get; set; } int PageSize { get; set; } int TotalItemCount { get; set; } } 然后一个类去实现这个类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public class