// 发回复 protected void ReplyBtn_Click(object sender, EventArgs e) { Button replyBtn = (Button)sender; HiddenField hiddenCmntId = replyBtn.Parent.FindControl("HiddenCmntId") as HiddenField; HiddenField hiddenAimsId = replyBtn.Parent.FindControl("HiddenAimsId") as HiddenField; TextBox replyText = replyBtn.Parent.FindControl("ReplyText") as TextBox; Panel cmntReplyPanel = replyBtn.Parent as Panel; Repeater repeateReply = cmntReplyPanel.Parent.FindControl("ReptCmntReply") as Repeater; try { if (!IsSignIn()) { Response.Redirect(URL_SIGNIN); return; } User user = (User)Session["User"]; CurrentReply currentReply = new CurrentReply() { CmntId = Int64.Parse(hiddenCmntId.Value), UserId = user.Id, Contents = replyText.Text.Trim(), ReplyDate = DateTime.Now.ToLocalTime(), }; string _aimsId = hiddenAimsId.Value; // 获取回复目标编号 if (!String.IsNullOrEmpty(_aimsId)) { Int64 aimsId = Int64.Parse(_aimsId); currentReply.AimsId = aimsId; } // 添加回复记录到数据库 bool isOk = CurrentReplyService.AddCurrentReply(currentReply); // 刷新评论区域 if (isOk) { replyText.Text = ""; // 清空输入框 DisplayCurrentCmntReply(repeateReply, currentReply.CmntId); } } catch (Exception ex) { PromptInfo.Text = ex.Message; } }
/// <summary> /// 显示动态评论的回复 /// </summary> /// <param name="repeater">回复所在的控件对象</param> /// <param name="cmntId">评论 ID</param> protected void DisplayCurrentCmntReply(Repeater repeater, Int64 cmntId) { try { if (cmntId > 0) { DataTable data = CurrentReplyService.GetCurrentReplyByCmntId(cmntId); // 通过回复 ID 查回复数据 if (data != null) { repeater.DataSource = data; repeater.DataBind(); } } } catch (Exception) { String msg = String.Format("获取评论 ID 为 {0} 的回复失败! -> DisplayNoticeCmntReply()", cmntId); throw new Exception(msg); } }