Asp.Net实现评论盖楼(含Ajax实现方式)

最近项目需要做个仿腾讯文章评论盖楼的功能,在往上找了找,Php的倒是不少,不过由于对Php不了解,也没去研究。最后找到一个.net版的。感觉不错,闲话休提,进入正题:
       其实评论盖楼的关键就是个递归,通过递归查找出一条评论的所有评论。先看下效果图吧:


   思路:加载评论时,先加载当前评论的内容,然后用一个递归函数构造出引用的评论的内容。关键代码:

  public static void AddComment(List<MultiLevelCommentInfo> list, List<MultiLevelCommentInfo> quoteList, MultiLevelCommentInfo cmt)
        {
            if (cmt.ReferenceId != 0)
            {
                MultiLevelCommentInfo find = list.Find(new Predicate<MultiLevelCommentInfo>(cmt.MatchRule));
                quoteList.Add(find); 
                AddComment(list, quoteList, find); // 递归调用,只要ReferenceId不为零,就加入到引用评论列表
            }
            else
                return;
        }
说明:上面代码来自 张子阳博客里的例子,后面我改成为Ajax方式的了。

原程序下载:http://www.tracefact.net/sourcecode/NestedComment.rar 

Ajax方式实现:http://download.csdn.net/source/3477456


2011-9-15 8:52:36 附加:

上面那种方式有缺点:每次都要查询出所有记录, 用 SQL语句递归查询每篇评论和引用评论效果更佳。


2014-4-26 13:59:24 改进:


下载地址:http://download.csdn.net/detail/a497785609/7256043


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值