【自然框架】QuickPager asp.net 分页控件的Ajax分页方式。

简介:   上次比较匆忙,Ajax的分页方式仅实现了基本功能,或者说只是验证了我的想法。现在对Ajax分页有做了一些调整,现在可以正式用了。     使用方法还是非常简单,可以完全按照URL分页方式来做,只需要把PagerTurnKind 属性 设置为:PagerTurnKind.AjaxForWebControl;就可以了。

 

  上次比较匆忙,Ajax的分页方式仅实现了基本功能,或者说只是验证了我的想法。现在对Ajax分页有做了一些调整,现在可以正式用了。

 

  使用方法还是非常简单,可以完全按照URL分页方式来做,只需要把PagerTurnKind 属性 设置为:PagerTurnKind.AjaxForWebControl;就可以了。

 

  然后前台需要引用jquery-1.4.2.min.js和QuickPager-1.0.js。QuickPager-1.0.js是QuickPager需要用的一个js脚本,Demo里面有这个js脚本。也可以在在线演示里下载。

 

  最后把Repeater控件(其他控件也可以,比如GridView等)放在<div id="div_Grid">,必须是这个ID名,目前没有把这个名称做到分页控件的属性里面,如果你想修改的话,需要修改QuickPager-1.0.js 。不过不建议修改。

 

  适用范围:

 

  你可能会觉得这个不是正规的Ajax分页。这个是为了给那些原来使用服务器控件(GridView、Repeater等)来写程序,后来由于某种原因必须实现Ajax方式来分页,但是又不想对原来的代码做大幅度的修改的情况。

 

  这个就是为了这种情况来设计的,原理就是直接在服务器端拼接成HTML,前台用jQUery.ajax来申请这段HTML,然后直接赋给 div_Grid。也许这种方式很不正规,但是对于刚才说的那种情况来说还是很方便的。

 

  你可以按照以前的方式来设置Repeater、GridView等控件,然后按照要求设置QuickPager分页控件就可以了。很简单。

 

  下载:http://www.naturefw.com/down/List1.aspx

 

  在线演示:http://demo.naturefw.com/Nonline/QuickPager/default.aspx

 

  直通车:http://demo.naturefw.com/Nonline/QuickPager/ajax/RepeaterAjax.aspx

 

 

  另外,我顺便做了一个伪URL,这个是为了照顾搜索引擎的。搜索引擎可以按照URL来访问页面。而用户是通过Ajax来访问页面的。这样两全其美,各取所需。当然直接访问/RepeaterAjax.aspx?page=4 是可以直接看到第四页的数据的,否则也无法“欺骗”搜索引擎了。进入后还是Ajax的分页。

 

  后台代码:

 

 

img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
///   <summary>
    
///  Ajax的分页,Repeater控件的演示。
    
///   </summary>
     public   partial   class  RepeaterAjax : BaseWebPage
    {
        
#region  初始化
        
protected   override   void  OnInit(EventArgs e)
        {
            
base .OnInit(e);

            
// 数据访问函数库的实例,使用基类里定义的。
            Pager1.DAL  =   base .Dal;

            
// 设置显示数据的控件
            Pager1.ShowDataControl  =   this .Rpt;

           
// 默认是PostBack的分页方式,这里要修改成 AjaxForWebControl的形式。以后还会出AjaxForJson的。
            Pager1.PagerTurnKind  =  PagerTurnKind.AjaxForWebControl;

        }
        
#endregion


        
protected   void  Page_Load( object  sender, EventArgs e)
        {

            
if  ( ! Page.IsPostBack)
            {
                SetPagerInfo();         
// 设置表名、字段名等

             }
        }

        
#region  给QuickPager_SQL 设置属性,以便拼接SQL
        
private   void  SetPagerInfo()
        {
            Pager1.PagerSQL.TableName 
=   " Person_User_ViewLog " ;               // 表名或者视图名称
            Pager1.PagerSQL.TableShowColumns  =   " * " ;     // 需要显示的字段
            Pager1.PagerSQL.TablePKColumn  =   " LogID " ;              // 主键名称,不支持复合主键
            Pager1.PagerSQL.TableOrderByColumns  =   " LogID desc  " // 排序字段,根据分页算法而定,可以支持多个排序字段
            Pager1.PagerSQL.TableQuery  =    "" ;   // 查询条件

            Pager1.PageSize 
=   5 ;                                   // 一页显示的记录数
            Pager1.NaviCount  =   4 ;

            
// 设置分页算法
            Pager1.PagerSQL.SetPagerSQLKind  =  PagerSQLKind.Max_TopTop;

        }
        
#endregion


       
    }

 

 

  前台设置:

 

img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
< script  language ="javascript"  type ="text/javascript"  src ="/aspnet_client/jquery/jquery-1.4.2.min.js" ></ script >
< script  language ="javascript"  type ="text/javascript"  src ="/aspnet_client/nature/QuickPager-1.0.js" ></ script >
    
div的ID必须是div_Grid

< div  id ="div_Grid"  style ="text-align:left;padding:10px;" >
        
< asp:Repeater  ID ="Rpt"  runat ="server"  EnableViewState ="false" >
            
< ItemTemplate >
                     
<% # (Container.DataItem  as  DataRowView)[ " 用户 " ] %>  在 [ <% # (Container.DataItem  as  DataRowView)[ " 访问时间 " ] %> ] 访问了网页: < br  />
                     
<% # (Container.DataItem  as  DataRowView)[ " 访问页面 " ] %> < br  />
                     浏览器信息是:
<% # (Container.DataItem  as  DataRowView)[ " UserAgent " ] %> < br  />
                     
< hr  />
            
</ ItemTemplate >
        
</ asp:Repeater >
    
</ div >
    
< Nature:QuickPager  ID ="Pager1"  runat ="server"     />

 

 

 

相关文章
|
23天前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
33 8
|
18小时前
|
Linux C# Android开发
一个开源、跨平台的.NET UI框架 - Avalonia UI
一个开源、跨平台的.NET UI框架 - Avalonia UI
|
19小时前
|
机器学习/深度学习 人工智能 算法
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
|
18小时前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
|
6天前
|
开发框架 JavaScript 前端开发
|
10天前
|
测试技术 API 开发者
.NET单元测试框架大比拼:MSTest、xUnit与NUnit的实战较量与选择指南
【8月更文挑战第28天】单元测试是软件开发中不可或缺的一环,它能够确保代码的质量和稳定性。在.NET生态系统中,MSTest、xUnit和NUnit是最为流行的单元测试框架。本文将对这三种测试框架进行全面解析,并通过示例代码展示它们的基本用法和特点。
25 7
|
10天前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
67 1
|
17小时前
|
JSON 测试技术 C#
C#/.NET/.NET Core优秀项目框架推荐榜单
C#/.NET/.NET Core优秀项目框架推荐榜单
|
7天前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
32 0
|
7天前
|
API 开发者 Java
API 版本控制不再难!Spring 框架带你玩转多样化的版本管理策略,轻松应对升级挑战!
【8月更文挑战第31天】在开发RESTful服务时,为解决向后兼容性问题,常需进行API版本控制。本文以Spring框架为例,探讨四种版本控制策略:URL版本控制、请求头版本控制、查询参数版本控制及媒体类型版本控制,并提供示例代码。此外,还介绍了通过自定义注解与过滤器实现更灵活的版本控制方案,帮助开发者根据项目需求选择最适合的方法,确保API演化的管理和客户端使用的稳定与兼容。
38 0