WebForm分页浏览

1.封装类

//封装类
using System;
using System.Collections.Generic;
using System.Web;

/// <summary>
/// Users 的摘要说明
/// </summary>
public class Users
{

    private string _UserName;

    public string UserName
    {
        get { return _UserName; }
        set { _UserName = value; }
    }
    private string _Password;

    public string Password
    {
        get { return _Password; }
        set { _Password = value; }
    }
    private string _NickName;

    public string NickName
    {
        get { return _NickName; }
        set { _NickName = value; }
    }
    private bool _Sex;

    public bool Sex
    {
        get { return _Sex; }
        set { _Sex = value; }
    }
    public string SecStr
    {
        get { return _Sex ? "男" : "女"; }
    }
    private DateTime _Birthday;

    public DateTime Birthday
    {
        get { return _Birthday; }
        set { _Birthday = value; }
    }
    public string BirthdayStr
    {
        get { return _Birthday.ToString("yyyy年MM月dd日"); }
    }
    private string _Nation;

    public string Nation
    {
        get { return _Nation; }
        set { _Nation = value; }
    }

}

2连接数据库,建立方法

using System;
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;

/// <summary>
/// UserData 的摘要说明
/// </summary>
public class UserData
{
    SqlConnection cnn = null;
    SqlCommand cmd = null;

    public UserData()
    {
        cnn = new SqlConnection("server=.;database=ren;User=sa;pwd=123");
        cmd = cnn.CreateCommand();
    }
    /// <summary>
    /// 查询数据库所有内容
    /// </summary>
    /// <returns>泛型集合</returns>
    public List<Users> quan()
    {
        List<Users> ulist = new List<Users>();
        cmd.CommandText = "select * from Users";
        cnn.Open();
        SqlDataReader ss = cmd.ExecuteReader();
        while(ss.Read())
        {
            Users u = new Users();
            u.UserName = ss[0].ToString();
            u.Password = ss[1].ToString();
            u.NickName = ss[2].ToString();
            u.Sex = Convert.ToBoolean(ss[3]);
            u.Birthday = Convert.ToDateTime(ss[4]);
            u.Nation = ss[5].ToString();
            ulist.Add(u);
        }
        cnn.Close();
        return ulist;
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="dijiye">第几页</param>
    /// <param name="perpagenum">每一页的数量</param>
    /// <returns></returns>
    public List<Users> select(int dijiye,int perpagenum)
    {
        List<Users> ulist = null;
        cmd.CommandText = " select top " + perpagenum + " * from Users where UserName not in(select top " + (perpagenum*(dijiye - 1)) + " UserName from Users)";
        cnn.Open();
        SqlDataReader ss = cmd.ExecuteReader();
        if (ss.HasRows)
        {
            ulist = new List<Users>();
            while (ss.Read())
            {
                Users u = new Users();
                u.UserName = ss[0].ToString();
                u.Password = ss[1].ToString();
                u.NickName = ss[2].ToString();
                u.Sex = Convert.ToBoolean(ss[3]);
                u.Birthday = Convert.ToDateTime(ss[4]);
                u.Nation = ss[5].ToString();
                ulist.Add(u);
            }
        }
        cnn.Close();
        return ulist;
    }
    /// <summary>
    /// 根据SQl语句,查询符合条件的数据
    /// </summary>
    /// <param name="sql">SQl查询条件</param>
    /// <returns></returns>
    public List<Users> zuhe(string sql)
    {
        List<Users> ulist = new List<Users>();
        cmd.CommandText =sql;
        cnn.Open();
        SqlDataReader ss = cmd.ExecuteReader();
        while (ss.Read())
        {
            Users u = new Users();
            u.UserName = ss[0].ToString();
            u.Password = ss[1].ToString();
            u.NickName = ss[2].ToString();
            u.Sex = Convert.ToBoolean(ss[3]);
            u.Birthday = Convert.ToDateTime(ss[4]);
            u.Nation = ss[5].ToString();
            ulist.Add(u);
        }
        cnn.Close();
        return ulist;
    }

}

3.页面设置

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" %>

<!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">
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table style="background-color:blue; width:100%">
                    <tr style="background-color:yellow;">
                        <td>姓名</td>
                        <td>密码</td>
                        <td>昵称</td>
                        <td>性别</td>
                        <td>生日</td>
                        <td>民族</td>
                    </tr>

            </HeaderTemplate>
            <ItemTemplate>
                <tr style="background-color:gray;">
                        <td><%#Eval("Username") %></td>
                        <td><%#Eval("Password") %></td>
                        <td><%#Eval("NickName") %></td>
                        <td><%#Eval("Sex") %></td>
                        <td><%#Eval("Birthday") %></td>
                        <td><%#Eval("Nation") %></td>
                </tr>

            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>

        </asp:Repeater>
         当前第<asp:Label ID="dijiye" runat="server" Text="Label"></asp:Label>页,共<asp:Label ID="gongjiye" runat="server" Text="Label"></asp:Label>页  <asp:LinkButton ID="shangyiye" runat="server">上一页</asp:LinkButton>
        <asp:LinkButton ID="xiayiye_button" runat="server">下一页</asp:LinkButton>&nbsp&nbsp跳转到<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server"></asp:DropDownList>页
    </form>
</body>
</html>

4、设置事件

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default1 : System.Web.UI.Page
{
    int pagecount = 3;//规定每页的数量
    protected void Page_Load(object sender, EventArgs e)
    {
        gongjiye.Text = maxpage().ToString();
        //gongjiye.Text = new UserData().select(1, pagecount).Count.ToString();
        shangyiye.Click += shangyiye_Click;//上一页的点击事件
        xiayiye_button.Click += xiayiye_button_Click;//下一页点击事件
        DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;//索引变化事件
        if (!IsPostBack)
        {
            Repeater1.DataSource = new UserData().select(1,pagecount);//第一页显示
            Repeater1.DataBind();
            dijiye.Text = "1";//页面开始运行就是第一页

            for (int i = 1; i <= maxpage(); i++)
            {
                DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));//跳转按钮DropDownList1的页数添加
            }

        }
    }

    void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)//索引变化事件
    {
        int n = int.Parse(DropDownList1.SelectedValue);//取出选中哪一页
        Repeater1.DataSource = new UserData().select(n,pagecount);//显示所选页数的内容
        Repeater1.DataBind();//数据绑定
        dijiye.Text = n.ToString();
    }

    void xiayiye_button_Click(object sender, EventArgs e)//下一页点击事件
    {
        int xia = int.Parse(dijiye.Text) + 1;
        if (xia > maxpage())//下一页如果大于最大页
        {
            return;
        }
        Repeater1.DataSource = new UserData().select(xia,pagecount);
        Repeater1.DataBind();
        dijiye.Text = xia.ToString();

    }

    void shangyiye_Click(object sender, EventArgs e)//上一页的点击事件
    {
        int shang = int.Parse(dijiye.Text)-1;
        if (shang == 0)
        {
            return;
        }
        Repeater1.DataSource = new UserData().select(shang, pagecount);
        Repeater1.DataBind();
        dijiye.Text = shang.ToString();

    }

    public int maxpage()//求最多有多少页
    {
        int i;
        List<Users> ulist = new UserData().quan();
        if (ulist == null)
        {
            i = 0;
        }
        else
        {
            i = int.Parse(Math.Ceiling(ulist.Count/(pagecount*1.0)).ToString());
        }
        return i;
    }

}

总之:就是拼Sql查询语句:

每页5行数据

select top 5  * from Users where UserName not in(select top 0 UserName from Users);显示第一页信息

select top 5  * from Users where UserName not in(select top 5 UserName from Users);显示第二页信息

以此类推。。。。。。。

select top " + perpagenum + " * from Users where UserName not in(select top " + (perpagenum*(dijiye - 1)) + " UserName from Users)

完!!!

.

时间: 2024-12-17 12:23:43

WebForm分页浏览的相关文章

PHP搜索MYSQL数据库加分页浏览小结

PHP搜索加分页浏览小结: 1 分页后再做搜索 2 这里对于url的拼接,以及模糊查询,搜索时候的显示添加,SQL语句的拼接 3 对于页面传递过来的超级链接的变量,如果不存在就要设置,对于可能抛出异常的要加上@屏蔽错误 4 对于查询一般用一些关键字来获取 5 分页显示的limit条件要写好 6 搜索时候的where条件 搜索表单: <!--- 搜索表单---> <form action="list3.php" method="get"> 标题

【9】分页浏览的管理

阅读目录 分页关注的内容 状态的传递 数据的获取 查询结果的分页 跳页的实现 分页器的样式 页面的完整处理流程 回到顶部 分页关注的内容 前面博文中,通过自行构造HTML表格代码,可以生成易于管理.易于扩展的数据列表.但在实际应用中,数据量动则成百上千,单一页面根本无法完全显示所有数据.把所有数据进行分页后逐页显示,是当前比较流行的数据展示方式.因此,我们需要研究和表格方式展示数据相适应的分页管理机制. 分页显示的核心,是根据页面记录数.页号.查询条件.排序顺序等因素,在数据库中查出该页相对应的

WebForm 分页与组合查询

1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> list = new List<Subject>(); cmd.CommandText = "select *from Subject where SubjectName like @a "; cmd.Parameters.Clear(); cmd.Parameters.Add

【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 = nu

webform 分页

界面: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat=

分页浏览的导航栏Bootstrap和js两种方法

1,Bootstrap写法: 效果图: 代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""&

[转]关于SQL分页存储过程的分析

[转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合

【MVC】快速构建一个图片浏览网站

引言 当抄完MusicStore时,你应该对MVC有一个比较清晰的认识了.接下来就需要做个网站来继续增加自己的知识了.那么,该做个什么网站呢.做个图片浏览网站吧,简单而实用. 简单设计 1.首先,页面中间是个图片列表.将所有图片列出来是不太科学的,所以要做个分页浏览的功能. 2.页面右边,有个图片排行榜,列出点击量前10名的图片名称.而且,同一时间段同一客户端的重复点击只能计算一次才合理的. 3.有图片浏览就肯定有图片上传功能啦,还必须要是登录后才能上传. 数据层 采用EF的Code First

海量分页的简单分析

此文仅个人理解,不到之处望指出 提出:easyui的datagrid组件有海量分页的内容,通过查询数据库的所有数据在表格进行分页浏览,因为数据量多,也叫海量分页, 网上实现方式有很多,这里用存储过程. 搭建: 使用sql server2012 测试表的属性: 插入数据: declare @x int            set @x = 1         while @x <= 50000  --插入5万条数据         begin           insert into TBIn