专栏首页更流畅、简洁的软件开发方式【自然框架】QuickPager asp.net 分页控件的Ajax分页方式。

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

  上次比较匆忙,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的分页。

  后台代码:

代码 
/// <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

       
    }

  前台设置:

代码 
<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"   />

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分页解决方案 —— GridView + QuickPager + QuickPager_SQL + DataAccessLibrary + 数据库

        这里要说的不仅仅是一个分页控件,而是一套解决方案,包括如何显示数据、显示分页导航,如何得到分页用的sql语句(等效于存储过程),如何提取数据,如何绑定控...

    用户1174620
  • .net Framework2.0 里面的Webcontrols的几个常用控件的继承树

          为了写好分页控件的自动绑定的功能,研究了一下几个控件的继承关系,目的就是为了看看DataSource到底是从哪里来的。 ?       层数还真是多...

    用户1174620
  • 【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)

    适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查...

    用户1174620
  • 一条SQL的奇妙旅行

    工作中我们经常查询数据库,用一个查询,得到想要的数据。可有想过,我们得到答案经过了哪些磨难?经历了哪些诱惑?

    ITester软件测试小栈
  • 译|通过构建自己的JavaScript测试框架来了解JS测试

    测试(单元或集成)是编程中非常重要的一部分。在当今的软件开发中,单元/功能测试已成为软件开发的组成部分。随着 Nodejs 的出现,我们已经看到了许多超级 JS...

    张张
  • 国际机器学习大会ICML2014 主题演讲直播!

    国际机器学习大会ICML2014 主题演讲直播由腾讯视频、腾讯高校合作支持。 直播链接:http://ur.tencent.com/home/live_icml...

    腾讯高校合作
  • MySQL-explain笔记

    使用 EXPLAIN 查看执行计划, 5.6后可以加参数 EXPLAIN FORMAT=JSON xxx输出json格式的信息。

    WindCoder
  • VUE-001-在表格单元格(el-table-column)中添加超链接访问

    在进行前端网页开发时,通常列表数据我们使用table展示。那么如何在 el-table-column 单元格中使用超链接呢?

    跟着阿笨一起玩NET
  • 6-3 如何编写一个 plugin

    插件向第三方开发者提供了 webpack 引擎中完整的能力。使用阶段式的构建回调,开发者可以引入它们自己的行为到 webpack 构建流程中。插件能够 钩入(h...

    love丁酥酥
  • JMH - Java 代码性能测试的终极利器、必须掌握

    现在的 JVM 已经越来越为智能,它可以在编译阶段、加载阶段、运行阶段对代码进行优化。比如你写了一段不怎么聪明的代码,到了 JVM 这里,它发现几处可以优化的地...

    未读代码

扫码关注云+社区

领取腾讯云代金券