成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡單實現網易蓋樓回復功能

開發 前端
今天筆者把網易蓋樓回復的實現原理以及實例Demo貼出,希望能幫助各位的實際開發。

實現蓋樓回復大致分三部。

第一步:建數據庫表,這個表需要有ID及父ID.

第二步:添加回復,添加回復的關鍵代碼如下:

  1. var comment = StringExtension.ChangeStr(collection["comment"]); 
  2.                     var bbsId = collection["comment_post_ID"].ToString(); 
  3.                     var comment_parent = collection["comment_parent"].ToString(); 
  4.                     //$引用3樓 測試蓋樓回復。。。 
  5.                     if (comment.IndexOf("$引用") >= 0) 
  6.                     { 
  7.                         comment = comment.Substring(comment.IndexOf("樓") + 1, comment.Length - comment.IndexOf("樓") - 1); 
  8.                     } 
  9.                     else 
  10.                     { 
  11.                         comment_parent = "0"
  12.                     } 
  13.  
  14.                     NetFavCommentModel bbsComment = new NetFavCommentModel 
  15.                     { 
  16.                         commentContent = comment, 
  17.                         NetFavId = Convert.ToInt32(bbsId), 
  18.                         commentParentId = Convert.ToInt32(comment_parent), 
  19.                         commentAddTime = DateTime.Now                         
  20.                     }; 
  21. netFavCommentRepository.AddNetFavComment(bbsComment); 
第三步:查詢回復,并以蓋樓方式顯示。關鍵代碼如下。
 
  1. KeyValuePair<Pagination, IList<NetFavCommentModel>> bbsComment = netFavCommentRepository.NetFavCommentPagination(pagin, condition); 
  2.             int i = 1; 
  3.             foreach (var item in bbsComment.Value) 
  4.             { 
  5.                 item.louId = i++; 
  6.                 item.commentContent = GetContent(item, bbsComment.Value.ToList()); 
  7.             } 
  8.             ViewBag.bbsComment = bbsComment.Value; 
  9.             ViewBag.bbsCommentCount = bbsComment.Value.Count(); 
其中GetContent很重要,循環查詢,將蓋樓內容全部顯示出來。

相關代碼如下:

  1. #region 蓋樓回復 
  2.         // 根據當前的Comment得到HTML輸出 
  3.         protected string GetContent(object objComment, List<NetFavCommentModel> list) 
  4.         { 
  5.             string output = ""
  6.  
  7.             NetFavCommentModel cmt = (NetFavCommentModel)objComment;                    // 獲取當前評論 
  8.             List<NetFavCommentModel> quoteList = new List<NetFavCommentModel>();    // 創建當前評論所引用的評論列表 
  9.  
  10.             AddComment(list, quoteList, cmt);        // 為當前評論的引用列表添加項目 
  11.  
  12.             //quoteList.Sort(NetFavCommentModel.GetComparer());    // 對列表排序,順序排列 
  13.  
  14.             foreach (NetFavCommentModel quote in quoteList)    // 生成引用的評論列表 
  15.             { 
  16.                 output = String.Format( 
  17.                         "<div>{0}<span>網友 {1}的原貼:</span><br />{2}</div>"
  18.                         output, quote.commentAddMan, quote.commentContent); 
  19.             } 
  20.  
  21.  
  22.             // 添加當前引用 
  23.             output = String.Format( 
  24.                     "<div class='comment'><p class='title'><span>{0}樓{1} 發表</span>網友:{2}</p>{3}<p>{4}</p>" + 
  25.                     "<p style='text-align:right;'><a class='comment-reply-link' href='#comment' " + 
  26.                     "onclick='addQuote({0},{5});'>回復</a></p></div>"
  27.                    cmt.louId, cmt.commentAddTime, cmt.commentAddMan, output, cmt.commentContent, cmt.commentId); 
  28.  
  29.             return output; 
  30.         } 
  31.  
  32.         // 向quoteList中添加 符合條件的Comment 
  33.         protected void AddComment(List<NetFavCommentModel> list, List<NetFavCommentModel> quoteList, NetFavCommentModel cmt) 
  34.         { 
  35.             if (cmt.commentParentId != 0) 
  36.             { 
  37.                 NetFavCommentModel find = list.Where(n => n.commentId == cmt.commentParentId).FirstOrDefault(); 
  38.                 quoteList.Add(find); 
  39.  
  40.                 // 遞歸調用,只要CommentId不為零,就加入到引用評論列表 
  41.                 AddComment(list, quoteList, find); 
  42.             } 
  43.             else 
  44.                 return
  45.         } 
  46.  
  47.         #endregion 

 完成后截圖如下:

 

最后給出Demo示例網址 。本項目的源碼就不提供了,提供一套原生版Demo,有需要請下載

原文鏈接:http://www.cnblogs.com/ushou/archive/2013/03/08/2948402.html

【編輯推薦】

責任編輯:彭凡 來源: 博客園
相關推薦

2018-07-04 09:59:23

Android評論回復

2010-08-31 19:53:25

DHCP功能

2009-12-24 10:04:31

WPF右鍵菜單

2018-07-02 13:10:05

Android短信驗證

2018-06-04 10:53:25

2021-04-14 14:12:26

微信微信公眾號留言功能

2009-09-08 09:31:54

c# CheckBox

2021-04-15 21:21:06

微信新功能移動應用

2011-11-10 13:44:23

網易郵箱

2009-12-25 13:41:33

2010-02-23 17:54:36

2014-01-23 16:24:09

網易郵箱

2024-01-15 08:21:12

Android應用方式

2013-05-14 10:07:13

谷歌

2009-08-21 17:11:05

C#攝像頭

2009-08-27 18:05:54

C#索引功能

2018-06-29 09:53:07

Python微信自動回復

2010-10-28 11:33:57

網易掌上郵

2009-12-14 11:12:55

Ruby運行
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 老司机精品福利视频 | 在线亚洲人成电影网站色www | 久久这里只有精品首页 | 亚洲综合在线一区 | 天天拍天天操 | 日韩视频一区在线观看 | 成人午夜精品一区二区三区 | 国产精品一区二 | 看真人视频一级毛片 | 精品动漫一区 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 精品中文字幕一区二区三区 | 亚洲国产成人精品久久 | 国产一区久久精品 | 国产精品伦一区二区三级视频 | 日韩影音| 精品三区 | 久久精品视频在线播放 | 精品久久久久一区 | 免费观看一区二区三区毛片 | 国产视频一二三区 | 久久精品久久久久久 | julia中文字幕久久一区二区 | 人人干人人爽 | 亚洲视频中文字幕 | 美女精品一区 | 久久久久国产精品一区二区 | 麻豆久久久久久久久久 | 欧美日韩中文字幕在线 | 一区二区视频免费观看 | 欧美久久大片 | 国产精品免费视频一区 | 欧美在线综合 | 久久99精品国产99久久6男男 | 国产你懂的在线观看 | 成人高清在线视频 | 国产精品久久国产精品久久 | 久久精品国产一区二区三区不卡 | 国产精品视频网 | 99精品久久99久久久久 | 欧美综合久久 |