不用gridview实现分页,回归asp时代。。。哈哈

昨天翻书看到书上不用控件直接分页。。。

然后好开心啊。。。因为一直想这么做。可是没有做好。。我好笨啊。。。

一直都知道asp时候不都是直接用document.write输出表格并显示数据吗。但是自己太懒。。

幸运的是昨天看到了。。哈哈。。其实我很久以前就看到了吧。。就是没有自己敲下。

废话不说了。。。把代码贴出来备忘吧

直接后代代码了。。。

        const int Record_Per_Page = 10;       //定义每页现实记录数
        int nPageCount;                       //定义总页数
        int nPage;                            //定义当前页
        int nRecCount;                        //定义总记录数
 
        protected void Page_Load(object sender, EventArgs e)
        {
            PageDisplay();
        }
        private void PageDisplay()
        {
            //连接数据库获取数据,并添加数据到DataTable中
            SqlConnection sqlConn = new SqlConnection();
            SqlCommand sqlCmd = new SqlCommand();
            SqlDataAdapter sqlda = new SqlDataAdapter();
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            try
            {
                sqlConn.ConnectionString = "server=.;database=Depart;uid=sa;pwd=123456";
                sqlCmd.Connection = sqlConn;
                sqlCmd.CommandText = "select departid,departname from DepartInfo";
                sqlda.SelectCommand = sqlCmd;
                sqlda.Fill(ds, "DepartInfo");
                dt = ds.Tables[0];
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            //获得总记录数
            nRecCount = dt.Rows.Count;
            StringBuilder strHtml = new StringBuilder("");
            //判断是否存在记录
            if (nRecCount > 0)
            {
                //确定数据记录要实现的页面
                nPageCount = nRecCount / Record_Per_Page;
                //如果余数大于0,则剩下得新得页面显示
                if (nRecCount % Record_Per_Page > 0)
                    nPageCount++;
                //从请求字符串中获得当前需要显示得页数
                nPage = Convert.ToInt32(Request.QueryString["page"]);
                if (nPage < 1)
                    nPage = 1;
                if (nPage > nPageCount)
                    nPage = nPageCount;

                //将所有得 页数(页编码)显示到屏幕上。并作连接
                for (int i = 1; i <= nPageCount; i++)
                {
                    strHtml.Append("<a href='Default.aspx?page=" + i + "'>");
                    if (i == nPage)
                        strHtml.Append("<b>" + i + "</b>");
                    else
                        strHtml.Append(i);
                    strHtml.Append("</a>");
                }
                Response.Write(strHtml);

                //确认当前页面得开始记录和终止记录
                int nStart = Record_Per_Page * (nPage - 1);
                int nEnd = nStart + Record_Per_Page - 1;

                if (nEnd > nRecCount - 1)
                    nEnd = nRecCount - 1;

                //用表格得形式在屏幕输出记录
                //输出表头

                Response.Write("<table border='1' cellpadding='0' cellspacing='0' style='border-collapse' bordercolor='#111111' bgcolor='#ffffff'><tr>");
                Response.Write("<td>分类号</td><td>分类名称</td></tr>");
                //清空对象得字符串以便构建心得字符串
                strHtml.Remove(0, strHtml.Length);
                //显示当前页中得每一条记录
                for (int i = nStart; i <= nEnd; i++)
                {
                    strHtml.Append("<tr>");
                    for (int j = 0; j < 2; j++)
                    {
                        strHtml.Append("<td>" + dt.Rows[i][j].ToString() + "</td>");
                    }
                    strHtml.Append("</tr>");
                }
                strHtml.Append("</table>");
                Response.Write(strHtml);
                strHtml.Remove(0, strHtml.Length);
            }
            sqlConn.Close();
        }

以上代码是直接全部页数都显示出来 ,样式是 1 2 3 4 5 6 、、、、

下面的代码比上面的好一点,显示为 首页 下一页 尾页 当前页和总共页数。。。呵呵


        const int Record_Per_Page = 10;       //定义每页现实记录数
        int nPageCount;                       //定义总页数
        int nPage;                            //定义当前页
        int nRecCount;                        //定义总记录数
        protected void Page_Load(object sender, EventArgs e)
        {
            PageDisplay();
        }
        private void PageDisplay()
        {
            //连接数据库获取数据,并添加数据到DataTable中
            SqlConnection sqlConn = new SqlConnection();
            SqlCommand sqlCmd = new SqlCommand();
            SqlDataAdapter sqlda = new SqlDataAdapter();
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            try
            {
                sqlConn.ConnectionString = "server=.;database=Depart;uid=sa;pwd=123456";
                sqlCmd.Connection = sqlConn;
                sqlCmd.CommandText = "select departid,departname from DepartInfo";
                sqlda.SelectCommand = sqlCmd;
                sqlda.Fill(ds, "DepartInfo");
                dt = ds.Tables[0];
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            //获得总记录数
            nRecCount = dt.Rows.Count;
            StringBuilder strHtml = new StringBuilder("");
            //判断是否存在记录
            if (nRecCount > 0)
            {
                //确定数据记录要实现的页面
                nPageCount = nRecCount / Record_Per_Page;
                //如果余数大于0,则剩下得新得页面显示
                if (nRecCount % Record_Per_Page > 0)
                    nPageCount++;
                //从请求字符串中获得当前需要显示得页数
                nPage = Convert.ToInt32(Request.QueryString["page"]);
                if (nPage < 1)
                    nPage = 1;
                if (nPage > nPageCount)
                    nPage = nPageCount;
                //本例中使用分野技术
                if (nPage == 1)
                {
                    strHtml.Append("<a href='PageDiv.aspx?page=1'>首页</a>")
                        .Append("<a href='PageDiv.aspx?page=")
                        .Append(nPage + 1)
                        .Append("'>下一页</a>")
                        .Append("<a href='PageDiv.aspx?page=")
                        .Append(nPageCount)
                        .Append("'>尾页</a>")
                        .Append("&nbsp;&nbsp;&nbsp;&nbsp;页次:")
                        .Append(nPage.ToString())
                        .Append("/")
                        .Append(nPageCount.ToString())
                        .Append("<br>");//先是当前业和合计页数
                }
                else if (nPage == nPageCount)
                {
                    strHtml.Append("<a href='PageDiv.aspx?page=1'>首页</a>")
                    .Append("<a href='PageDiv.aspx?page=")
                    .Append(nPage - 1)
                    .Append("'>上一页</a>")
                    .Append("<a href='PageDiv.aspx?page=")
                    .Append(nPageCount)
                    .Append("'>尾页</a>")
                    .Append("&nbsp;&nbsp;&nbsp;&nbsp;页次:")
                    .Append(nPage.ToString())
                    .Append("/")
                    .Append(nPageCount.ToString())
                    .Append("<br>");//先是当前业和合计页数
                }
                else
                {
                    strHtml.Append("<a href='PageDiv.aspx?page=1'>首页</a>")
                   .Append("<a href='PageDiv.aspx?page=")
                   .Append(nPage - 1)
                   .Append("'>上一页</a>")
                   .Append("<a href='PageDiv.aspx?page=")
                   .Append(nPage + 1)
                   .Append("'>下一页</a>")
                   .Append("<a href='PageDiv.aspx?page=")
                   .Append(nPageCount)
                   .Append("'>尾页</a>")
                   .Append("&nbsp;&nbsp;&nbsp;&nbsp;页次:")
                   .Append(nPage.ToString())
                   .Append("/")
                   .Append(nPageCount.ToString())
                   .Append("<br>");//先是当前业和合计页数
                }
                Response.Write(strHtml);


                /*
                //将所有得 页数(页编码)显示到屏幕上。并作连接
                for (int i = 1; i <= nPageCount; i++)
                {
                    strHtml.Append("<a href='Default.aspx?page=" + i + "'>");
                    if (i == nPage)
                        strHtml.Append("<b>" + i + "</b>");
                    else
                        strHtml.Append(i);
                    strHtml.Append("</a>");
                }
                Response.Write(strHtml);
                */


                //确认当前页面得开始记录和终止记录
                int nStart = Record_Per_Page * (nPage - 1);
                int nEnd = nStart + Record_Per_Page - 1;

                if (nEnd > nRecCount - 1)
                    nEnd = nRecCount - 1;

                //用表格得形式在屏幕输出记录
                //输出表头

                Response.Write("<table border='1' cellpadding='0' cellspacing='0' style='border-collapse' bordercolor='#111111' bgcolor='#ffffff'><tr>");
                Response.Write("<td>分类号</td><td>分类名称</td></tr>");
                //清空对象得字符串以便构建心得字符串
                strHtml.Remove(0, strHtml.Length);
                //显示当前页中得每一条记录
                for (int i = nStart; i <= nEnd; i++)
                {
                    strHtml.Append("<tr>");
                    for (int j = 0; j < 2; j++)
                    {
                        strHtml.Append("<td>" + dt.Rows[i][j].ToString() + "</td>");
                    }
                    strHtml.Append("</tr>");
                }
                strHtml.Append("</table>");
                Response.Write(strHtml);
                strHtml.Remove(0, strHtml.Length);
            }
            sqlConn.Close();
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值