`
wyf
  • 浏览: 433312 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

C#分页 访google

阅读更多

using System;  
using System.Data;  
using System.Configuration;  
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;  
  
/// <summary>  
/// Pagenumber 的摘要说明  
/// </summary>  
public static class Pagenumber  
{  
    ///   <summary>   
         ///  创建并显示分页器  
         ///   </summary>   
    public static string BuildPager(int totalRecords, int currentPage, int pageSize, int pid)  
    {  
        int alter = 4;  
        int startPage = 1;  
        int endPage = currentPage + alter;  
        int totalPages = CalculateTotalPages(totalRecords, pageSize);  
  
        if (currentPage > alter)  
        {  
            startPage = currentPage - alter;  
        }  
  
        if (endPage > totalPages)  
        {  
            endPage = totalPages;  
        }  
  
        string strTemp = @" <a href='Default.aspx?p={0}&pno={1}'>{2}</a>&nbsp; ";  
        StringBuilder sb = new StringBuilder("");  
        if (currentPage != startPage)  
        {  
            sb.Append(string.Format(strTemp, currentPage - 1, currentPage - 1, " 上一页 "));  
        }  
  
        for (int i = startPage; i <= endPage; i++)  
        {  
            if (currentPage == i)  
            {  
                sb.Append(" <font color=red> " + i + " </font>&nbsp;&nbsp; ");  
            }  
            else  
            {  
                sb.Append(string.Format(strTemp, i, i, "[" + i + "]"));  
            }  
        }  
  
        if (currentPage != endPage)  
        {  
            sb.Append(string.Format(strTemp, currentPage + 1, currentPage + 1, " 下一页 "));  
        }  
  
        return sb.ToString();  
    }  
   
          /**/ ///   <summary>   
         ///  计算总页数  
         ///   </summary>   
         ///   <param name="totalRecords"> 总记录数 </param>   
         ///   <param name="pageSize"> 每页记录数 </param>   
    public static int CalculateTotalPages(int totalRecords, int pageSize)  
    {  
        int totalPagesAvailable;  
  
        totalPagesAvailable = totalRecords / pageSize;  
  
        // 由于C#的整形除法 会把所有余数舍入为0,所以需要判断是否需要加1   
        if ((totalRecords % pageSize) > 0)  
            totalPagesAvailable++;  
  
        return totalPagesAvailable;  
    }  
}  
 
Demo2:
 
C#代码 
/**//// <summary>  
        /// 类似GOOGLE的分页函数,王传炜,资料参考http://www.phpx.com/happy/viewthread.php?tid=99280&extra=&page=2,谢谢YourEyes  
         /// </summary>  
        /// <param name="total">总记录数</param>  
        /// <param name="per">每页记录数</param>  
        /// <param name="page">当前页数</param>  
        /// <param name="query_string">Url参数</param>  
         private string pagination(int total,int per,int page,string query_string)  
         {  
             int allpage=0;  
             int next=0;  
             int pre=0;  
             int startcount=0;  
             int endcount=0;  
             string pagestr="";   
             if(page<1){page=1;}  
             //计算总页数  
            if (per != 0)  
             {  
                 allpage = (total / per);  
                 allpage = ((total % per) != 0 ? allpage + 1 : allpage);  
                 allpage = (allpage == 0 ? 1 : allpage);  
             }  
             next=page+1;  
             pre=page-1;  
           startcount=(page+5)>allpage?allpage-9:page-4;//中间页起始序号  
             //中间页终止序号  
             endcount = page<5 ? 10 : page+5;  
             if(startcount<1) {startcount=1;} //为了避免输出的时候产生负数,设置如果小于1就从序号1开始  
             if(allpage<endcount){endcount=allpage;}//页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内  
             pagestr="共"+ allpage +"页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";  
             
             pagestr+=page>1 ?  "<a href=\""+ query_string + "?page=1\">首页</a>&nbsp;&nbsp;<a href=\""+ query_string +"?page="+ pre +"\">上一页</a>": "首页 上一页";  
              //中间页处理,这个增加时间复杂度,减小空间复杂度  
              for(int i=startcount;i<=endcount;i++)  
              {   
                  pagestr+=page==i?"&nbsp;&nbsp;<font color=\"#ff0000\">"+i+"</font>":"&nbsp;&nbsp;<a href=\""+ query_string +"?page="+ i +"\">"+ i +"</a>";  
              }  
              pagestr+=page!=allpage ? "&nbsp;&nbsp;<a href=\""+ query_string+"?page="+ next +"\">下一页</a>&nbsp;&nbsp;<a href=\""+ query_string +"?page="+ allpage+"\">末页</a>" : " 下一页 末页";  
  
             return pagestr;             
         }  
 
分享到:
评论

相关推荐

    类似google的分页控件

    "类似google的分页控件"通常指的是采用简洁、高效的分页设计,以提供良好的用户体验。Google的分页样式已经成为了一种典范,以其清晰、直观的设计被广泛应用。 分页控件的主要功能是将大量数据分割成可管理的小部分...

    C#实现PDF转图片image

    PDFium是Google Chrome浏览器用来查看PDF的开源库,它提供了跨平台的API来读取、解析和操作PDF文档。PDFium包含了一个名为`FPDF`的C库,以及一系列C++接口。在C#中,我们可以使用P/Invoke技术(Platform Invoke)来...

    C#工具包 dataGridView sqlite 多线程

    实现在线翻译可能利用了API接口,如Google Translate或Bing Translator,通过发送请求获取翻译结果,并在应用程序中显示。这需要理解HTTP请求、响应处理及JSON解析等相关知识。 3. **文件分隔合并**: 文件分隔...

    datalist2种分页样式源码源数据库

    在这个项目中,我们关注的是“datalist2种分页样式源码源数据库”,它提供了两种分页样式:数字分页,模仿了百度和Google的分页效果,并且附带了源代码和源数据库。这个解决方案旨在实现一个无需额外控件的分页功能...

    c#日程管理

    7. **事件数据源**:FullCalendar可以接收来自不同数据源的事件,包括JSON、XML、Google Calendar等。在C#日程管理DEMO中,它将与后端的API对接,动态获取并展示日程数据。 8. **交互性**:FullCalendar支持用户...

    windows资源管理器c#

    5. **集成其他服务**:如云存储服务(OneDrive、Google Drive等)的集成,需要API调用。 6. **高级搜索选项**:如通配符搜索、日期范围筛选等。 7. **外壳扩展**:允许安装其他程序提供的额外功能,如右键菜单项。...

    自定义分页,例如Google分页

    本知识点主要围绕"自定义分页,例如Google分页"这一主题,针对C# .NET .NET3.5 ASP.NET开发环境,探讨如何实现类似Google的高效、用户友好的分页功能。 首先,理解Google分页的特点。Google的分页设计简洁且直观,...

    Google地图.net代码

    在.NET环境中,我们通常会使用JavaScript与C#或其他.NET语言进行前后端交互。 1. **集成Google Maps API** - 获取API密钥:首先,你需要在Google Cloud Console上创建一个项目,并启用Google Maps JavaScript API...

    c#饼状图(bs程序)

    ASP.NET自身并不提供饼状图控件,但可以通过集成JavaScript库如jQuery、Highcharts、Chart.js或Google Charts等来实现。这些库提供了丰富的API和配置选项,可以轻松地在客户端生成动态饼状图。 4. **C#后端处理** ...

    wpf+CefSharp模仿浏览器Tab分页,下载文件,收藏,刷新,删除,新窗口

    在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和CefSharp库来创建一个功能丰富的浏览器应用,其中包括Tab分页、文件下载、收藏、刷新、删除以及新窗口等核心功能。CefSharp是一个.NET...

    Google资讯采集.rar

    本项目"Google资讯采集.rar"显然关注的是利用C#和ASP.NET技术来实现从Google新闻中抓取数据的过程。 首先,我们要了解C#是一种面向对象的编程语言,由微软开发,广泛应用于Windows平台上的应用程序开发,包括桌面...

    C#winform 实现PDF阅读功能__0525).rar

    1. **PDFium**:PDFium是一个开源项目,由Google维护,它提供了处理PDF文档的能力。通过PDFium,我们可以创建一个C#封装库,以读取、显示和操作PDF文档。首先,需要下载PDFium库并将其编译为C#可以使用的DLL。然后,...

    Google Custom Search API应用实例

    本实例将重点介绍如何使用C#语言来实现Google Custom Search API的应用。 首先,要使用Google Custom Search API,你需要在Google Developers Console上创建一个项目,并启用Custom Search JSON API。然后,创建一...

    使用MVP模式实现分页和排序的最佳方法

    嗨,大家好,我在Google花了几个小时,以寻找如何以优化方式在gridview中实现分页/排序的想法。数据库方面:进行查询,只获取要显示的记录数。 (我很清楚)(服务器代码):使用ObjectContainerDatasource和...

    google全站搜索php程序1101.net版.net.rar_google_google 搜索

    3. **.NET框架**:尽管程序的名称中有".net",但考虑到描述中提到的".NET开发",可能意味着部分组件或接口是用C#或其他.NET语言实现的。 4. **数据库交互**:搜索引擎需要与数据库进行交互来存储和检索信息,这可能...

    ASP.NET仿google智能提示

    - 对于大量数据,可以考虑使用分页或延迟加载技术,只在需要时加载更多结果。 - 考虑使用debounce或throttle函数来限制用户输入频率,避免频繁的AJAX请求。 5. **用户体验**: - 设计良好的UI反馈,如显示加载...

    .net Google地图定位系统源码

    这个项目可能包含了一系列用于在Web应用中集成Google Maps功能的C#或VB.NET代码,比如地图显示、定位、标记、路径规划等功能。 描述中的信息虽然简洁,但可以推测出该源码提供了实现Google地图服务的功能,可能是...

    asp.net应用谷歌地图开发web程序

    它支持多种编程语言,如C#和VB.NET,提供了强大的服务器端控件和事件驱动模型,便于开发高效、安全的Web应用。 3. **定位功能**:通过调用谷歌地图API中的Geolocation接口,可以获取用户的地理位置信息。这在现代...

    在键入C#时搜索

    标题中的“在键入C#时搜索”指的是在开发Windows应用程序时,实现一个功能,让用户在输入C#代码时能够实时搜索并提供相关的代码补全或建议,这大大提高了编程效率。这种技术常用于集成开发环境(IDE)中,如Visual ...

Global site tag (gtag.js) - Google Analytics