常用分页代码备份

在公司里开发一些页面经常要坐分页,做了一个通用点的,备份一下,以后只要copy了

.cs端

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

namespace WebFormTest
{
  public partial class WebForm1 : System . Web . UI . Page
  {
    public int PageIndex = 1;
    private int pageSize = 12;
    private int totalCount = 0;
    const int PageShowNum = 5; //导航条显示半数
    public string CurrentUrl = "WebForm1.aspx";

    private int totalPage
    {
      get
      {
        return ( totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1);
      }
    }

    /// <summary>
    /// 检查参数
    /// </summary>
    private void CheckParam()
    {
      if (! int . TryParse( Request . QueryString [ "pageIndex" ], out PageIndex))
        PageIndex = 1;
    }

    protected void Page_Load( object sender , EventArgs e)
    {
      this . CheckParam();

      if (! Page . IsPostBack)
      {
        this . BindData();
      }
    }

    /// <summary>
    /// 绑定展示数据
    /// </summary>
    private void BindData()
    {
      List < int > list = GetData(); //获取数据
      this . totalCount = list . Count;
      PagedDataSource datasource = new PagedDataSource();
      datasource . AllowPaging = true;
      datasource . DataSource = list;
      datasource . PageSize = pageSize;
      datasource . CurrentPageIndex = PageIndex - 1;
      rpt . DataSource = datasource;
      rpt . DataBind();

      this . SetPager( PageIndex , totalPage);
    }

    /// <summary>
    /// 用来获取数据
    /// </summary>
    /// <returns></returns>
    private List < int > GetData()
    {
      List < int > list = new List < int >();
      for ( int index = 1; index < 1000; index ++)
      {
        list . Add( index);
      }
      return list;
    }   
   
    /// <summary>
    /// 设置分页
    /// </summary>
    /// <param name="currentNum">当前页,也就是PageIndex</param>
    /// <param name="totalNum">总页数</param>
    private void SetPager( int currentNum , int totalNum)
    {
      int _beginNum = 1 , _endNum = 1;
      _beginNum = PageShowNum < currentNum ? currentNum - PageShowNum : 1;
      if ( PageShowNum + currentNum >= totalNum)
      {
        _endNum = totalNum;
      }
      else
      {
        if ( int . Equals( _beginNum , 1))
        {
          _endNum = 2 * PageShowNum + _beginNum;
        }
        else
        {
          _endNum = PageShowNum + currentNum;
        }
      }
      StringBuilder sb = new StringBuilder( "&nbsp;&nbsp;");

      if ( currentNum > 1)
      {
        sb . AppendFormat( " <a class='f_a' href='{0}'> {1} </a>&nbsp;" , CurrentUrl , "首页");
      }
      else if ( currentNum == 1)
      {
        sb . Append( " <a class='f_a' > 首页 </a>&nbsp;");
      }

      string _className = string . Empty;
      while ( _beginNum <= _endNum)
      {
        if ( _beginNum == PageIndex)
        {
          _className = "f_s";
          sb . AppendFormat( " <a class='{0}' style='color:red' > {1} </a>&nbsp;" , PageIndex , _beginNum);

        }
        else
        {
          _className = "f_a";
          sb . AppendFormat( " <a href='{0}?pageIndex={1}'> {1} </a>&nbsp;" , CurrentUrl , _beginNum);
        }
        _beginNum ++;
      }

      if ( currentNum < totalNum)
      {
        sb . AppendFormat( " <a href='{0}?pageIndex={1}'> {2} </a>&nbsp;" , CurrentUrl , totalNum , "尾页");
    
      }
      else if ( currentNum == totalNum)
      {
        sb . Append( " <a class='f_a' > 尾页 </a>&nbsp;");
      }
      sb . Append( "<input type='text' id='txtPageIndex' style='width:40px;font-size:12px' onKeyPress='return Page.GoEnter(event)' /> 页 <input type='button' onclick='return Page.GoPage()' value='GO' />");
      sb . AppendFormat( "&nbsp;&nbsp;&nbsp;&nbsp;{0}/{1} 页 共 {2} 篇" , currentNum , totalNum , totalCount);

      ltrPage . Text = sb . ToString();

      ClientScript . RegisterClientScriptBlock( Page . GetType (), "ChannelArray" , "var totalPage=" + totalNum + ";\r\n" , true);
    }

  }
}
.aspx页面代码
< %@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebFormTest.WebForm1" %>

<!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>
</head>
<body>
  <form id= "form1" runat= "server" >
  <div>
    <asp:Repeater ID= "rpt" runat= "server" >
      <ItemTemplate>
        < %# Container.DataItem.ToString() %>
        <br />
      </ItemTemplate>
    </asp:Repeater>
    <br />
    <asp:Literal ID= "ltrPage" runat= "server" />
  </div>
  <script type= "text/javascript" >
    ( function ( win) {
      if ( ! win . Page) {
        var Page = {
          GoPage : function () {
            var page = document . getElementById( "txtPageIndex" ). value;
            if ( page . length === 0) {
              alert( "请您输入页码");
              return false;
            };
            var IsNum = function () {
              var strNum = '1234567890';
              var isNum = true;
              for ( var i = 0; i < page . length; i += 1) {
                var c = page . charAt( i);
                if ( strNum . indexOf( c) < 0) {
                  isNum = false;
                  break;
                };
              };
              return isNum;
            }
            if ( IsNum()) {
              if ( parseInt( page) > totalPage && parseInt( page) > 1) {
                alert( "您输入的页数超过总页数,请重新输入!");
                return false;
              };
              var currentUrl = "<%=CurrentUrl %>" + "?pageIndex=" + page;
              location . href = currentUrl;
              return false;
            } else {
              alert( "您输入的信息有误,请重新输入!");
            }

          },
          GoEnter : function ( evt) {
            evt = evt || window . event;
            if ( evt && evt . keyCode == 13)
              return Page . GoPage();
          }
        }
        win . Page = Page;
      }
      document . getElementById( "txtPageIndex" ). value = "<%=PageIndex %>";
    })( window);
  </script>
  </form>
</body>
</html>

你可能感兴趣的:(分页)