• 基于Jquery的Ajax分页,只有上一页和下一页


    最近项目中用到ajax分页

    在网上找到一个非常好用的分页插件jquery-pagination-ajax,以下是链接

    http://www.zhangxinxu.com/wordpress/2010/01/jquery-pagination-ajax%E5%88%86%E9%A1%B5%E6%8F%92%E4%BB%B6%E4%B8%AD%E6%96%87%E8%AF%A6%E8%A7%A3/

    http://www.cnblogs.com/linzheng/archive/2010/11/07/1871069.html

    但是无奈,不太适合项目。看了jquery-pagination,大体明白了其原理,所以,自己写你一个很简单的

    分页功能,算是完成任务,如图

    个人认为ajax分页和普通的分页,核心原理是大致相同的。

    我是用了一个隐藏域来存储当前页面的索引。

    贴一下主要的前台代码吧 ,有点乱

    <body>
        <form id="form1" runat="server">
           <input type="hidden" id="hdPageCount_1"  value="<%=pageCount %>">" /><!--总页数-->
          <input type="hidden" id="hdCurrentPageCount_1"  value="1" /><!--当前页数-->
          <div id="Main-right-marriage">
                <div class="next" style="top: 155px; left: 221px;">
                            <a href="javascript:void(0)" id="btn_prev"><img src="image/prev.png" /></a>
                </div>
                <div class="photo_wall-top">
                     <div class="left">  <span class="show_big_img"></span></div>
                     <div class="right"> </div><!-- to right-->
                 </div><!-- to photo_wall-top-->
                <div class="next" style="top:155px; right: 8px;">
                              <a href="javascript:void(0)"  id="btn_next"><img src="image/next.png" /></a>
                </div>
            </div>
        </form>
    </body>

    JS部分的代码

    <script type="text/javascript">
        $(function () {
    
          /*鼠标悬浮效果*/
            $(".box a img").mouseover(function () {
                var $div = $(this).parent().parent().parent().parent().find(".left");
                var $bigImg = $div.find(".bigImg");
    
                $bigImg.attr("src", $(this).attr("src"));
            });
            //ajax 无效果 bug修改
            $(".box a img").live("mouseover", function () {
    
                var $div = $(this).parent().parent().parent().parent().find(".left");
                var $bigImg = $div.find(".bigImg");
    
                $bigImg.attr("src", $(this).attr("src"));
            });
    
            ajax.ProductList(("#btn_next"), 1, 4); //第一次请求初始化
    
            // 分頁效果
            var pageSize = 4;     //每页显示条数初始化,修改显示条数,修改这里即可
            var pageCount_QH = parseInt($("#hdPageCount_1").val());
         
            $("#btn_next").click(function () {
                var currentPageIndex = parseInt($("#hdCurrentPageCount_1").val());
                if (currentPageIndex * pageSize > pageCount_QH) {
                    return false;
                } else {
                    $("#hdCurrentPageCount_1").val(currentPageIndex + 1);
                    ajax.ProductList(this, $("#hdCurrentPageCount_1").val(), pageSize, 1);
                }
            });
            $("#btn_prev").click(function () {
                var currentPageIndex = $("#hdCurrentPageCount_1").val();
    
                if (currentPageIndex > 1) {
                    ajax.ProductList(this, currentPageIndex - 1, pageSize, 1);
                    $("#hdCurrentPageCount_1").val(currentPageIndex - 1);
                }
                else {
                    return false;
                }
            });
        });
    </script>
    View Code

    Ashx后台代码:

    /// <summary>
        /// 获取产品
        /// </summary>
        public void GetProduct()
        {
            HttpContext context = HttpContext.Current;
            int pageIndex = Convert.ToInt32(context.Request.Form["_pageIndex"]);//页面索引
            int pageSize = Convert.ToInt32(context.Request.Form["_pageSize"]);//显示条数
            int count = 0;
            List<PagerTestModels.Product> list = new PagerTestBLL.ProductManager().GetAllProduct(pageSize, pageIndex, "", out count);
    
            if (list.Count == 0)
                return;
    
            StringBuilder sbFirst = new StringBuilder();//获取第一个大图
            StringBuilder sbAll = new StringBuilder();//获取是个小图
    
            foreach (var item in list)
            {
                if (sbFirst.Length == 0)
                {
                    sbFirst.AppendFormat("<a href="#" class="bigImg_link" ><img  class="bigImg" src="{0}" height="260" width="260" /><br/><span class="title bigImg_title"></span></a>", item.Thumb);
                }
                sbAll.AppendFormat("<div class="box"><a href="{2}" ref="#"><img  src="{0}" height="124" width="124" alt="{1}"  /></a></div>", item.Thumb, item.Title, item.PID);
            }
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("oneproduct", sbFirst.ToString());
            dic.Add("allproduct", sbAll.ToString());
    
            string str = GetJson(dic);
            
            HttpContext.Current.Response.ContentType = "plain/text";
            HttpContext.Current.Response.Write(str);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.End();
            
        }
    
        /// <summary>
        /// 字典转化为Json
        /// </summary>
        /// <param name="dic"></param>
        /// <returns></returns>
        private string GetJson(Dictionary<string, string> dic)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{");
    
            foreach (KeyValuePair<string, string> item in dic)
            {
                //反義引號
    
                sb.AppendFormat(""{0}":"{1}",", item.Key, item.Value.Replace(""", "\""));
            }
    
            //刪除最尾一個逗號
    
    
            string valRtn = Regex.Replace(sb.ToString(), @",$", "}");//替换最后的,号为}号
            return valRtn;
        }
    View Code

    源代码下载

  • 相关阅读:
    ajax全套
    url设计规范
    内置下划线方法
    rest_framework视图
    rest_framework
    数据库设置
    HDU 6231
    HDU 6242
    CodeForces 546D
    CodeForces 940E
  • 原文地址:https://www.cnblogs.com/youmeng/p/3149948.html
Copyright © 2020-2023  润新知