• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 适用于WebForm Mvc的Pager分页组件C#实现

适用于WebForm Mvc的Pager分页组件C#实现

作者:香草柠檬 字体:[增加 减小] 来源:互联网 时间:2017-05-28

香草柠檬 通过本文主要向大家介绍了webform mvc,webform和mvc的区别,webform转mvc,webform,webform是什么等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文为大家分享了自己写的一个Pager分页组件,WebForm,Mvc都适用,具体内容如下

分页控件其实就是根据链接在页面间传递参数,因为我看到MVC中你可以看到这样传递参数的new {para=val}这种方式传递参数,于是我想到用可以模仿这种传递参数的方式,那就用dynamic来作为参数对象传递。

下面是附上我写的具体的实现的代码

数据处理代码:

1.定义IPagedList接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Infrastruction.Pager
{
  public interface IPagedList
  {
    int pageIndex { get; set; }
    int pageSize { get; set; }
    int totalItemCount { get; set; }
    int totalPageCount { get; }
  }
}

</div>

2.实现IPagedList接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Infrastruction.Pager
{
  public class PagedList<T> : List<T>, IPagedList
  {
    public int pageIndex
    {
      get;
      set;
    }

    public int pageSize
    {
      get;
      set;
    }

    public int totalItemCount
    {
      get;
      set;
    }

    public int totalPageCount
    {
      get
      {
        return totalItemCount % pageSize == 0 ? (totalItemCount / pageSize) : (totalItemCount / pageSize + 1);
      }
    }

    public PagedList(IEnumerable<T> sources, int pageIndex, int pageSize)
    {
      if (sources != null && sources.Any())
      {
        this.AddRange(sources.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList());
      }
      this.pageIndex = pageIndex;
      this.pageSize = pageSize;
      this.totalItemCount = sources.Count();
    }
  }
}

</div>

分页标签处理代码:

 3.PagerHelper

using Infrastruction.Pager;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web;
using System.Web.UI;

namespace System.Web.UI
{
  public static class PagerHelper
  {

    public static string Pager(string url, IPagedList pagedList)
    {
      StringBuilder builder = new StringBuilder();
      if (pagedList != null)
      {
        builder.Append("<script type='text/javascript'>");
        builder.Append("window.onload = function () {");
        builder.Append(" var elements = document.getElementById('pager').childNodes;");
        builder.Append(" for (var i = 0; i < elements.length; i++) {");
        builder.Append("var txt = elements[i].innerText || elements[i].textContent;");
        builder.Append(" if (elements[i].nodeType =='1' && txt == '" + pagedList.pageIndex + "') {");
        builder.Append("elements[i].style.textDecoration = 'underline';break; } } }");
        builder.Append("</script>");
        builder.Append("<div id='pager'>");

        builder.Append("<span class='p'>");
        builder.AppendFormat("共 {0} 条数据  页次:{1}/{2}", pagedList.totalItemCount, pagedList.pageIndex, pagedList.totalPageCount, "上一页");
        builder.Append("</span>");
        builder.Append(" ");
        builder.Append(" ");
        builder.Append(" ");
        builder.Append(" ");
        if (pagedList.pageIndex > 1 && pagedList.pageIndex <= pagedList.totalPageCount)
        {
          builder.Append("<span class='p'>");
          builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, 1, "首页");
          builder.Append("</span>");
          builder.Append(" ");
          builder.Append("<span class='p'>");
          builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, pagedList.pageIndex - 1, "上一页");
          builder.Append("</span>");
          builder.Append(" ");
        }
        if (pagedList.totalPageCount > 1 && pagedList.totalPageCount <= 10)
        {
          for (int i = 1; i <= pagedList.totalPageCount; i++)
          {
            builder.Append("<span class='p'>");
            builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, i, i);
            builder.Append("</span>");
            builder.Append(" ");
          }
        }
        else if (pagedList.totalPageCount > 10)
        {
          if (pagedList.pageIndex < 11)
          {
            for (int i = 1; i <= 10; i++)
            {
              builder.Append("<span class='p'>");
              builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, i, i);
              builder.Append("</span>");
              builder.Append(" ");
            }
            builder.Append("<span class='p'>");
            builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, 11, "...");
            builder.Append("</span>");
            builder.Append(" ");
          }
          else
          {
            builder.Append("<span class='p'>");
            builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, (pagedList.pageIndex - 6), "...");
            builder.Append("</span>");
            builder.Append(" ");
            if (pagedList.pageIndex >= 11 && pagedList.totalPageCount <= pagedList.pageIndex + 5)
            {
              for (int i = pagedList.pageIndex - 5; i <= pagedList.totalPageCount; i++)
              {
                builder.Append("<span class='p'>");
                builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, i, i);
                builder.Append("</span>");
                builder.Append(" ");
              }
            }
            else
            {
              for (int i = pagedList.pageIndex - 5; i <= pagedList.pageIndex + 5; i++)
              {
                builder.Append("<span class='p'>");
                builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, i, i);
                builder.Append("</span>");
                builder.Append(" ");
              }
              builder.Append("<span class='p'>");
              builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, (pagedList.pageIndex + 6), "...");
              builder.Append("</span>");
              builder.Append(" ");
            }
          }

        }
        if (pagedList.pageIndex >= 1 && pagedList.pageIndex < pagedList.totalPageCount)
        {
          builder.Append("<span class='p'>");
          builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, pagedList.pageIndex + 1, "下一页");
          builder.Append("</span>");
          builder.Append(" ");
          builder.Append("<span class='p'>");
          builder.AppendFormat("<a href='{0}?pageIndex={1}'>{2}</a>", url, pagedList.totalPageCount, "尾页");
          builder.Append("</span>");
          builder.Append(" ");
        }
        builder.Append("</div>");
      }
      return builder.ToString();
    }


    public static string Pager(string url, IPagedList pagedList, dynamic objAttr)
    {
      StringBuilder builder = new StringBuilder();
      if (pagedList != null)
      {
        builder.Append("<script type='text/javascript'>");
        builder.Append("window.onload = function () {");
        builder.Append(" var elements = document.getElementById('pager').childNodes;");
        builder.Append(" for (var i = 0; i < elements.length; i++) {");
        builder.App



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 适用于WebForm Mvc的Pager分页组件C#实现

相关文章

  • 2017-05-28C#操作XML文件实例汇总
  • 2017-05-28C#导出GridView数据到Excel文件类实例
  • 2017-05-28轻松学习C#的foreach迭代语句
  • 2017-05-28Js中的substring,substr与C#中的Substring比较
  • 2017-05-28详解C#中的接口属性以及属性访问器的访问限制
  • 2017-05-28C#设置页面单位和缩放的方法
  • 2017-05-28C#生成指定范围内的不重复随机数
  • 2017-05-28读写XML文件的内容并将其显示在ListView控件上的方法
  • 2017-05-28ActiveMQ在C#中的应用示例分析
  • 2017-05-28C#中timer定时器用法实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 解析如何使用反射调用类型成员 方法,字段,属性
    • C#实现终止正在执行的线程
    • 轻松学习C#的抽象类
    • c# 连接access数据库config配置
    • WinForm中快捷键与组合按键的设置方法
    • c# 网址压缩简单实现短网址
    • C#实现软件监控外部程序运行状态的方法
    • C# Winform 禁止用户调整ListView的列宽
    • C#禁止textbox复制、粘贴、剪切及鼠标右键的方法
    • C#中事件处理的个人体会

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有