zoukankan      html  css  js  c++  java
  • 仿百度产生页码(仅是表现形式)可自行附加数据源

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text;
    public partial class _Default : System.Web.UI.Page 
    {
        
    int ToatalCountRecord = 0;
        
    public string pageHmtl = string.Empty;
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    //无数据源测试
            
    //仅仅是个模拟
            ToatalCountRecord = 18;
            
    if (Request.QueryString["page"== null)
                pageHmtl 
    = BuildPages(110);
            
    else
                pageHmtl 
    = BuildPages(int.Parse(Request.QueryString["page"].ToString()), 10);
            
    //pageHmtl在aspx页面    用<%=pageHmtl%> 输出
        }
        
    /// <summary>
        
    /// 构造UI的页面分页演样式及布局不涉及数据
        
    /// </summary>
        
    /// <param name="PageIndex">当前页索引</param>
        
    /// <param name="PageSize">页尺寸(就是每页显示几条)</param>
        
    /// <returns></returns>
        public string BuildPages(int PageIndex, int PageSize)
        {
            
    int PageStep = 5;//偏移量 
            int PageCount = (int)Math.Ceiling((double)(ToatalCountRecord) / PageSize);//页数
            int NumStep = (int)Math.Ceiling((double)(PageCount) / PageStep);//步数
            int CurrentStep=0;
            
    int isNext = 0;//标识符判断是否找到当前页对应的数值
            for (int n =1; n <= NumStep;n++ )//循环步数
            {
                
    for (int k = (n - 1* PageStep+1; k <= n * PageStep; k++)
                {
                    
    // 当前页在索引范围内时
                    if (PageIndex == k)
                    {
                        CurrentStep 
    = n;
                        isNext 
    = 1;
                        
    break;//退出内循环
                    }
                }
                
    if (isNext == 1)
                    
    break;//退出外循环
            }
            
    string PageUrl = Request.CurrentExecutionFilePath;//当前页
            int LeftNum = (CurrentStep - 1* PageStep + 1;//左界限
            int RightNum = PageStep * CurrentStep;//右界限
            if (PageCount <= PageStep)
            { 
                LeftNum 
    = 1;
                RightNum 
    = PageCount;
            }
            
    if (PageCount % PageStep != 0 && CurrentStep == NumStep)
                RightNum 
    = PageCount % PageStep + (LeftNum-1);
            StringBuilder st 
    = new StringBuilder();
            st.Append(
    "<div id=\"pageInfo\" class=\"pages\">\n");
            
    if (PageIndex > 1)//第一页判断
            {
                st.Append(
    "<a href=\"" + PageUrl + "?page=1\" >首页</a>\n");
                st.Append(
    "<a href=\"" + PageUrl + "?page=" + (PageIndex - 1).ToString() + "\" >上一页</a>\n");
            }
            
    else
            {
                st.Append(
    "<a  disable=\"disable\" >首页</a>\n");
                st.Append(
    "<a  disable=\"disable\" >上一页</a>\n");
            }
            
    if (LeftNum > 1)
                st.Append(
    "<a href=\"" + PageUrl + "?page=" + (LeftNum - 1).ToString() + "\" >...</a>\n");
            
    for (int p = LeftNum; p <= RightNum; p++)
            {
                
    if (p == PageIndex)//判断当前页
                    st.Append("<a  class=\"currentbtn\" disable=\"disable\">" + p.ToString() + "</a>\n");
                
    else
                    st.Append(
    "<a href=\"" + PageUrl + "?page=" + p.ToString() + "\">" + p.ToString() + "</a>\n");
            }
            
    if ((LeftNum + PageStep - 1<= PageCount)
                st.Append(
    "<a href=\"" + PageUrl + "?page=" + (RightNum + 1).ToString() + "\">...</a>\n");
            
    if (PageIndex < PageCount)//尾页判断
            {
                st.Append(
    "<a href=\"" + PageUrl + "?page=" + (PageIndex + 1).ToString() + "\" >下一页</a>\n");
                st.Append(
    "<a href=\"" + PageUrl + "?page=" + PageCount.ToString() + "\" >尾页</a>\n");
            }
            
    else
            {
                st.Append(
    "<a   disable=\"disable\" >下一页</a>\n");
                st.Append(
    "<a   disable=\"disable\" >尾页</a>\n");
            }
            st.Append(
    "</div>");
            
    return st.ToString();//输出页码
        }
    }

    html

    代码
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        
    <title></title>
            
    <style type="text/css">
    .pages 
    { color: #999; }
    .pages a, .pages .currentbtn 
    {text-decoration:none;float:left;padding:0 5px;border: 1px solid #ddd;background:#ffff;margin:0 2px;color:#000;}
    .pages a:hover
    {background-color: #E61636; color:#fff;border:1px solid #E61636;  text-decoration:none;}
    .pages .currentbtn 
    {font-weight: bold;color: #fff; background: #E61636;  border:1px solid #E61636;}
    </style>

    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
        
    <%=pageHmtl%>
        
    </div>
        
    </form>
    </body>
    </html>


  • 相关阅读:
    近期遇到的问题 与 总结
    最近使用的控件整理
    sass import 小记
    Visual studio 相关插件
    nodeJs中linq.js学习
    C++ Socket编程步骤
    Qt 多线程同步 与 通信
    信号槽 与事件区别
    Qt 关键宏 转自网络整理
    mongoDB windows安装
  • 原文地址:https://www.cnblogs.com/wangjun8868/p/1591242.html
Copyright © 2011-2022 走看看