博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字分页导航条 (asp.net C#)
阅读量:4181 次
发布时间:2019-05-26

本文共 4556 字,大约阅读时间需要 15 分钟。

using System;

using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using apk.DatabaseEx;
using System.Data.SqlClient;

public partial class MyCeShiPage : System.Web.UI.Page

{
     protected void Page_Load(object sender, EventArgs e)
     {
         if (!IsPostBack)
         {

             if (this.Request.Params["currentPage"] == null)

             {
                 currentpage = 1;
             }
             else
             {
                 currentpage =Convert.ToInt32(Request.Params["currentPage"]);
             }
             bbb();
             //string kk = PageData();
             //Response.Write(kk);
           
         }
     }

     public static int pages;                //总的页数

   
     public static int pagecout;              //总的记录条数
     public static int   currentpage;                  //当前页
    
     protected string PageData()
     {
        
         int cout=10;                        //每页要显示的条数
         int showpage=10;                    //数字导航条要显示页码的个数
         string leftInfo;
         pagecout = CalculateRecord();
         if (pagecout % cout == 0)
         { 
             pages = pagecout / cout; 
         }
         else
         {
             pages = pagecout / cout + 1;

         }

         StringBuilder centerInfo = new StringBuilder();

         //分页条分三部分,leftInfo是最左边的部分,用来显示当前页/总页数,每页显示的记录条数

         leftInfo = "第" + currentpage +"页"+ "/" + "共"+pages+"页" + "  " + "每页"

             + cout + "条" + "  共" + pagecout + "条";
       
         //中间的部分是分页部分

         int min;//要显示的页面数最小值

         int max;//要显示的页面数最大值

         if (currentpage > pages)//当前页必须小于最大页

         {
             currentpage = pages;
         }

         if (currentpage % showpage == 0) //如果恰好整除

         {

             min = currentpage + 1;

             max = currentpage + showpage;

         }
         else if (currentpage % showpage == 1 && currentpage > showpage)
         {

             min = (((int)currentpage / showpage) - 1) * showpage + 1;

             max = currentpage - 1;

         }

         else

         {

             min = ((int)currentpage / showpage) * showpage + 1;

             max = (((int)currentpage / showpage) + 1) * showpage;

         }

         string numberStr = " ";//循环生成数字序列部分

         string AbsUrl;//(URL?)左边的部分

         AbsUrl = this.Context.Request.Url.ToString();

         if (AbsUrl.IndexOf("?") == -1)

         {

         }

         else

         {

             AbsUrl = AbsUrl.Substring(0, AbsUrl.IndexOf("?"));

         }

         for (int i = min; i <= max; i++)
         {

             if (i <= pages)//只有不大于最大页才显示

             {

                 if (currentpage == i)//如果是当前页,用斜体和红色显示

                 {

                     numberStr = numberStr + "<a href=" + AbsUrl + "?currentPage=" + i.ToString() + ">" + "<I style='color:red'>" + i.ToString() + "</I>" + "</a>" + "/n";

                 }

                 else

                 {

                     numberStr = numberStr + "<a href=" + AbsUrl + "?currentPage=" + i.ToString() + ">" + i.ToString() + "</a>" + "/n";

                 }

             }

         }

         //第一页,上一页,下一页,最后一页

         string First, Previous, Next, Last;

         First = AbsUrl + "?currentPage=1";

         /

         if (currentpage == 1)

             Previous = AbsUrl + "?currentPage=1";

         else

             Previous = AbsUrl + "?currentPage=" + (currentpage - 1).ToString();

         /

         if (currentpage == pages)

             Next = AbsUrl + "?currentPage=" + pages;

         else

             Next = AbsUrl + "?currentPage=" + (currentpage + 1).ToString();

         /

         Last = AbsUrl + "?currentPage=" + pages;

         centerInfo.AppendFormat("<font face='Webdings' style='font-size:14px'><a href="/{0"}>7</a><a href="/{1"}>3</a></font>{2}<font face='Webdings' style='font-size:14px'><a href="/{3"}>4</a><a href="/{4"}>8</a></font>", First, Previous, numberStr, Next, Last);

         StringBuilder sb = new StringBuilder();//输出HTML字符串

         sb.AppendFormat("<table style = 'font-size:12px' border='0' cellpadding='0' cellspacing='0' width='100%'> /n " +

                         "<tr>/n" +

                         "<td width='25%' align='left'>{0}</td>/n" +

                         "<td width='61%' align='right'>{1}</td>/n" +

                         "<td width='14%' align='right'><input type='text' name='T1' size='4' style='border-bottom:solid 1pt gray;border-top :solid 1pt gray; border-left:solid 1pt gray;border-right:solid 1pt gray;'> /n     <input type='button' name='B1' size='6' value=go style='border-bottom:solid 1pt gray;border-top :solid 1pt gray; border-left:solid 1pt gray;border-right:solid 1pt gray;' οnclick='go(T1,{2})'></td>/n" +

                         "</tr>/n" +

                         "</table>", leftInfo,

                         centerInfo.ToString(),

                         pages);

       

         return sb.ToString();
     }

     //ICollection CreateSource()
     //{

     //}

     public int CalculateRecord()                 //计算总共有多少条记录

     {
         int allcout =0;
         string sql = "select count(namee) as co from product";
   
        SqlDataReader    rs =(SqlDataReader) DBManager.SystemDatabaseExec.ExecReader(sql);
         if (rs.Read())
         {
             allcout = Convert.ToInt32(rs["co"].ToString());
         }
         DBManager.SystemDatabaseExec.Close();
         return allcout;
     }
   
     private void bbb()//从数据库读出数据,绑定,在页面显示
     {
         StringBuilder sql = new StringBuilder();
         string sql1;
       
             sql.AppendFormat("select top {0} productid,productno,namec,namee from product where productid not in (select top {1} productid from product )", 10, (currentpage-1) * 10);
             sql1 = sql.ToString();
      
         DataSet ds = new DataSet();
         bool bol = DBManager.SystemDatabaseExec.ExecDataset(sql1, ds, "table");
         if (!bol)
             return;
         datalist1.DataSource = ds;
         datalist1.DataBind();
         DBManager.SystemDatabaseExec.Close();
     }
}

转载地址:http://jyhai.baihongyu.com/

你可能感兴趣的文章
Excel高级使用技巧
查看>>
速算,以后留着教孩子
查看>>
让你变成ps高手
查看>>
在可执行jar中动态载入第三方jar(转贴)
查看>>
考虑体积重量的01背包问题—基于遗传算法
查看>>
K-means 聚类算法
查看>>
带约束的K-means聚类算法
查看>>
约束优化方法
查看>>
VRPTW建模与求解—基于粒子群算法
查看>>
数据结构与算法(1):大O表示法
查看>>
Java学习知识树
查看>>
文科生,你为啥学编程?
查看>>
使用Eclipse时出现Unhandled event loop exception错误的有效解决办法
查看>>
JAVA之路:第一章 JAVA入门初体验
查看>>
菜鸟文科生的java之路:运算符
查看>>
菜鸟文科生的java之路:变量和常量
查看>>
菜鸟文科生的java之路:流程控制语句
查看>>
北海糖:Java初阶练习题
查看>>
不知道什么是数组?看这里就好了
查看>>
文科生北海唐的Java之路:方法(慕课)
查看>>