Json的Ajax无刷新分页效果

Json的Ajax无刷新分页效果

这一篇我讲接着写利用json读取数据以及和分页器绑定实现无刷新的分页效果
//根据当前页读取数据

       function BindCommentList(page) {
           $.post("/Ajax/Elec_Comment/GetData.asp教程x", { pid: '<%=DotNet.Framework.Common.QueryString.QId("id") %>', page: page },
               function(data) {
                   var Comments = $.parseJSON(data);
                   $("#divCommentList").empty();
                   for (var i = 0; i < Comments.length; i++) {
                       var comment = Comments[i];
                       var span = "<span class="hsk"><span>" + comment.id + comment.NickName + "</span><span>来自" + comment.CommentIP + "</span> <span>" + comment.CommentDate + "</span></span><span class="pl_text">" + comment.CommentBody + "</span>"
                       $("#divCommentList").append(span);
                   }
               }
           );
       }

以看到 ajax 请求页面为 /Ajax/Elec_Comment/GetData.aspx ,传过去2个参数,pid 是对应的产品ID(此示例演示的是 产品 评论的无刷新效果实现),还有一个page 参数,表示 当前页码。首页加载 page=1 ,当点击分页页码之后传过去的 page 值 是从 a 标签的 title 属性中读取。具体如何实现请参考上一篇文章  传送门

jquery 的 post 方法 会返回请求结果,如上代码 中 的  data .这个 data 返回的是一个 json 格式的数据。他是一个 List<T> 泛型集合。

$("#divCommentList").empty();  是清空 评论列表的 div 中的内容。。然后遍历 返回结果。 利用 json 将返回数据 解析 并且拼接成 html  最后重新追加到 divCommentList div 中。 。。。

public partial class GetData : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int page = DotNet.Framework.Common.QueryString.StrToId(DotNet.Framework.Common.QueryString.F("page"));
            int pid = DotNet.Framework.Common.QueryString.StrToId(DotNet.Framework.Common.QueryString.F("pid"));
            GSSS.HTML.BLL.PromotionZone.ElectronicProducts.T_ElectronicProducts_Comment bll = new GSSS.HTML.BLL.PromotionZone.ElectronicProducts.T_ElectronicProducts_Comment();
            if (page == 0)
            {
                page = 1;
            }
            DataSet data = bll.GetPageData(page, pid);
            List<commm> list = new List<commm>();
            if (data == null || data.Tables.Count == 0 || data.Tables[0].Rows.Count == 0)
            {
                Response.Write("暂无评论");
                Response.End();
            }
            commm model = null;
            foreach (DataRow row in data.Tables[0].Rows)
            {
                model = new commm()
                {
                    CommentBody = row["CommentBody"].ToString(),
                    CommentIP = row["CommentIP"].ToString(),
                    CommentDate = row["CommentDate"].ToString(),
                    CommentRate = row["CommentRate"].ToString(),
                    Email = row["Email"].ToString(),
                    id = row["id"].ToString(),

                    NickName = row["NickName"].ToString(),
                    ProdictID = row["ProdictID"].ToString(),

                };

                list.Add(model);
            }
            JavaScriptSerializer jss = new JavaScriptSerializer();
            Response.Write(jss.Serialize(list));
            Response.End();
        }
    }
    public class commm
    {
        public string CommentBody { get; set; }
        public string CommentIP { get; set; }
        public string CommentDate { get; set; }
        public string CommentRate { get; set; }
        public string Email { get; set; }
        public string id { get; set; }
        public string NickName { get; set; }
        public string ProdictID { get; set; }
    }

评论中有 评论时间 字段。。他是 DataTime 类型,起初本想直接从数据库教程中读取 DataTable 序列化成 Json对象返回,发现无法转换,后来换成 List<T> 泛型。返回之后由于序列化的原因。DataTime 类型的数据我不晓得要怎么解析,干脆直接返回字符串形式的。于是新建一个类 commm ,类结果和 产品评论 实体类 结果差不多,只是省略掉了页面上用不到的数据。

取出来的 DataTable 数据通过 遍历 添加到 了 List 集合中。。然后将List集合序列化为 Json 对象 返回给客户端,代码如下

JavaScriptSerializer jss = new JavaScriptSerializer();
            Response.Write(jss.Serialize(list));
            Response.End();

时间: 2024-11-21 06:27:48

Json的Ajax无刷新分页效果的相关文章

简单实现Ajax无刷新分页效果

Ajax无刷新分页效果,如下代码实现 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax无刷新分页效果</title> <script type="text/javascript"> function showpage(url) { var xhr = new XML

Ajax无刷新分页的性能优化方法_AJAX相关

Ajax无刷新分页,已经是一个大家比较熟悉的事物了,大概就是web前端页面上有一个js的方法,通过Ajax去请求服务器端的分页数据接口,拿到数据后再在页面上创建html结构,展现给用户,类似于下面这样: <script type="text/javascript"> function getPage(pageIndex){ ajax({ url:" RemoteInterface.cgi", method:"get", data:{p

ajax无刷新分页的简单实现_AJAX相关

本文实例为大家分享了ajax无刷新分页的具体代码,供大家参考,具体内容如下 html页 <html> <head> <title></title> <style type="text/css"> table{ border:solid 1px #444; background-color:Aqua;} table td{border:solid 1px #444;} </style> <script src=

详解PHP+AJAX无刷新分页实现方法_php技巧

PHP+AJAX无刷新分页实现代码详解,最近在看ajax 教程,就想写个简单入门的PHP+AJAX无刷新分页,我们依据ajax开发框架,代码如下: var http_request=false; function send_request(url){//初始化,指定处理函数,发送请求的函数 http_request=false; //开始初始化XMLHttpRequest对象 if(window.XMLHttpRequest){//Mozilla浏览器 http_request=new XMLH

ajax无刷新分页的简单实现

本文实例为大家分享了ajax无刷新分页的具体代码,供大家参考,具体内容如下 html页 <html> <head> <title></title> <style type="text/css"> table{ border:solid 1px #444; background-color:Aqua;} table td{border:solid 1px #444;} </style> <script src=

Ajax无刷新分页的性能优化方法

Ajax无刷新分页,已经是一个大家比较熟悉的事物了,大概就是web前端页面上有一个js的方法,通过Ajax去请求服务器端的分页数据接口,拿到数据后再在页面上创建html结构,展现给用户,类似于下面这样: <script type="text/javascript"> function getPage(pageIndex){ ajax({ url:" RemoteInterface.cgi", method:"get", data:{p

php+ajax无刷新分页实例详解_php技巧

本文实例讲述了php+ajax无刷新分页实现方法.分享给大家供大家参考,具体如下: ajax_page_show_userinfo.php页面如下: <meta 'Content:text/html;charset=utf-8'></meta> <title>ajax分页演示</title> <script language="javascript" src="js/ajaxpage.js"></sc

jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页_jquery

******生成js分页脚****** ****没剑(2008-03-05)**** 修改日期:2008-3-12 添加两个参数:displaynum,displaylastNum可以自由定制显示的页码数量 参数: pagesize:10 //每页显示的页码数 ,count:0 //数据条数 ,css:"mj_pagefoot" //分页脚css样式类 ,current:1 //当前页码 ,displaynum:7 //中间显示页码数 ,displaylastNum:5 //最后显示的

JQuery与JSon实现的无刷新分页代码_jquery

如图   而无刷新分页可以解决这个问题,上面播放着视频,下面我点下一页看着评论,现在大部分的网站都是无刷新分页. 源码如下(我是采用一页显示10条记录): 需要四个文件 一个实体类文件 CategoryInfoModel.cs 一个SqlHelper SQLHelper.cs 一个AJAX服务端处理程序 PagedService.ashx 一个客户端调用页面 WSXFY.htm CategoryInfoModel.cs和SQLHelper.cs我就不写了,都知道是什么文件 PagedServic