简单ajax分页 jQuery实现动态创建Dom

//前台aspx代码:

 <script type="text/javascript" src="Scripts/jquery-1.4.1-vsdoc.js"></script>
    <script type="text/javascript">

        var $table = $("<table border='1px' width='1000px'></table>");

        $(function () {

            var pageIndex = 1;
            changeImg(pageIndex);
        })

        function changeImg(pageIndex) {
            //调用前对其内容进行清空
            $table.text("");
            //getJSON 实现 
            $.getJSON("Wolf.ashx?pageIndex=" + pageIndex, function (data) {
                
                  //获得数据总数 来判断  是否 上一页  下一页
                var pageCount = parseInt(data[data.length - 1]);

                //在div下进行附加 动态创建table
                $("#d").append($table);
                var $tr = $("<tr></tr>");
                for (var i = 0; i < data.length - 1; i++) {

                    var $td = $("<td><img width='300px' height='300px' src='" + data[i] + "'/></td>");
                    $tr.append($td);
                    $table.append($tr);
                }
                var $page = $("<tr></tr>");
                $td = $("<td><a id ='up' href='#'>上一页</a></td>");
                $page.append($td);
                $td = $("<td></td>");
                $page.append($td);
                $td = $("<td><a id='down' href='#'>下一页</a></td>");
                $page.append($td);
                $table.append($page);



                $("#down").click(function () {
                    //判断是否越界 对其禁用
                    if (pageIndex + 1 >= 10) {
                        $(this).attr("disabled", true);
                    }
                    else {
                        pageIndex++;
                        changeImg(pageIndex);
                    }

                })
                $("#up").click(function () {
                    //判断是否越界 对其禁用
                    if (pageIndex - 1 <= 0) {
                        $(this).attr("disabled", true);
                    } else {
                        pageIndex--;
                        changeImg(pageIndex);
                    }

                });
            })


        }

 //后台ashx代码:      
    
    </script>
 public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "application/json";
        
        //获取wolf文件夹的绝对路径
        string path = context.Request.MapPath("Wolf");

        //获取所有图片
        string[] files = System.IO.Directory.GetFiles(path, "*.jpg", System.IO.SearchOption.AllDirectories);

        //获取发送过来的请求  页面索引
        string pageIndex = context.Request.QueryString["pageIndex"];
        //每页显示的图片个数
        int size = 3;
        //默认 页面的显示索引 为 第一页
        int index = 1;
        //对其 索引转换,若转换失败,则为默认 页面1
        if (int.TryParse(pageIndex,out index))
        {
            
        }
        //用来响应  存储 数据 
        List<string> filepath = new List<string>();

        
        
        //1   3*1     1   2    3
        //2   3*2     4   5    6
        for (int i = 0; i < files.Length; i++)
        {
            //这里需要判断每次是发送不同的 3条数据
            if (i < index * size&&i>=(index-1)*size)
            {
                filepath.Add(files[i]);
            }

        }
        //规律:	0,1,2,	3,4,5,	6,7,8,	9,10,11;

	
        //        Index		1	i<(1*3)		0,1,2
        //        Index		2	i<(2*3)	 	3,4,5
        //    思路:
        //    1>要想每次都显示3个,在之间还需要加上if过滤条件,因为i的值是"<"而产生不需要的值,
        //    那么需要在进行过滤的i一定是">"某个值;
        //    2>每次相差的数是size,那可能就是size乘以某个数;size又是不变的,
        //    所以size与某个数相乘 则决定了最终值;那个数起决定性作用,刚好乘以 (index-1)则刚好就是慢一拍的那个数。

        //求出总共页面数,用来返值 ,对 请求超出页面索引 判断使用
        int pageCount=  files.Length / 3 + 1;

        //对泛型 进行序列化 json对象
        JavaScriptSerializer ser = new JavaScriptSerializer();
        string strfile = ser.Serialize(filepath);

        //替换 ]  存储 总页面数
        strfile = strfile.Replace("]",","+ pageCount.ToString()+"]");
        //响应
        context.Response.Write(strfile);
    }
posted @ 2012-02-24 02:35  TakeTry  阅读(469)  评论(0编辑  收藏  举报