使用Asp.Net创建带有回复选项的评论框

时间:2018-07-12 11:34:58

标签: c# asp.net repeater

我要为我的网站创建一个具有回复选项的评论框

下面是我的aspx页面

 <div>

                <asp:Repeater runat="server" ID="repAnswer">
                    <ItemTemplate>
                        <h6>Answer</h6>

                        <p><%# Eval("Answer") %></p>
                        <asp:Label runat="server" ID="lblAnsId" Text='<%# Eval("AnsId")%>' Visible="false"></asp:Label>

                        <a class="link" id='lnkReplyParent<%#Eval("AnsId") %>' href="javascript:void(0)" onclick="showReply(<%#Eval("AnsId") %>);return false;">Reply</a>   

                        <a class="link" id="lnkCancle" href="javascript:void(0)" onclick="closeReply(<%#Eval("AnsId") %>);return false;">Cancle</a>  

                          <div id='divReply<%#Eval("AnsId") %>' style="display:none;">  
                             <asp:TextBox ID="textCommentReplyParent" CssClass="input-group" runat="server" Width="300px" TextMode="MultiLine" ></asp:TextBox>  
                             <br />  
                             <asp:Button ID="btnReplyParent" runat="server" Text="Reply" OnClick="btnReply_Click" /></div>

                    </ItemTemplate>
                </asp:Repeater>

            </div>
             <div style="margin-top:100px">
                 <h5>Your Answer</h5>
                 <hr />
                <CKEditor:CKEditorControl ID="txtAddAnswer" BasePath="Admin/ckeditor/" runat="server">
             </CKEditor:CKEditorControl>
                 <asp:Button runat="server" ID="btnAnswer" Text="Submit Answer" OnClick="btnAnswer_Click"/>
            </div>

我已使用Repeater绑定我的答案或评论。在转发器内部,我给了两个链接pne表示回复,其他表示取消。当某人单击回复时,会打开一个新的文本框并打开用于提供回复的按钮

下面是我的CS页面

 protected void btnReply_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem row in repAnswer.Items)
        {
            Label lblNewAnsIdholder = (Label)row.FindControl("lblNewAnsIdholder");
            TextBox txtReplyToAnswer = (TextBox)row.FindControl("txtReplyToAnswer");

            OnlineSubjects onlinesub = new OnlineSubjects()
            {
                reply = txtReplyToAnswer.Text.Trim(),
                AnsId = Convert.ToInt32(lblNewAnsIdholder.Text.ToString())
            };
            onlinesub.addAnswer();
        }          
    } 

我不知道如何在转发器中使用文本框,但是在通过Google搜索它后,我得到了类似的信息,我不确定那是对还是错。 我为我的班级创建对象的那一行我从那里得到错误 我想将textbox的值作为参数传递 请帮助我做到这一点。 谢谢

1 个答案:

答案 0 :(得分:0)

您应该尝试

TextBox txtReplyToAnswer = ((TextBox)row.FindControl("txtReplyToAnswer")).Text;

希望这会起作用。