Beispiel #1
0
        // 发回复
        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;
            }
        }
Beispiel #2
0
        /// <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);
            }
        }