简单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);

    }

你可能感兴趣的:(jquery)