将唯一ID应用于博客以获取CKEditor注释

时间:2017-11-09 00:14:20

标签: twitter-bootstrap ckeditor accordion

我在Bootstrap 3手风琴中设置了一个Blog,允许用户扩展和收缩帖子。每个页面将显示五个帖子,底部有Prev和Next按钮。这是一个令人讨厌的例外工作。

博客还允许在适当的每个帖子下方显示评论,并且通过这些评论我放置了一个CKEditor,允许任何用户添加他们自己的评论。

由于这是一架手风琴,从技术上讲,页面上有五个CKEditor,每个折叠后的帖子都有一个。当我从后面的代码中调用数据时,我得到这样的结果:

name = Request.Form["commentname"];
email = Request.Form["comentemail"];
comment = CKEditor.InnerText;
subscribe = Request.Form["subscribecheckbox"].ToString();
currentid = Request.Form["blogid"].ToString();

除了CKEditor.InnerText之外,其他所有内容都与我需要的完全相同。它总是试图从FIRST折叠的手风琴中拉出文本,而不是实际包含评论的手风琴。

上面的代码段位于按钮点击事件中,因此我确实有一个发件人可以使用。

protected void SubmitButton_Click(object sender, EventArgs e)

有没有办法将CKEditor的InnerText链接到发件人?

以下是手风琴中的评论部分:

<div id="commentfield" style="display: inline">

<input type="text" class="form-control" id="blogid" name="blogid" style="display:none;" value="<%= Id %>" />
<p><label class="box-title" for="email">Enter your name and email. Email will NOT be shared.</label></p>
<p><input type="text" class="form-control" id="commentname" name="commentname" required placeholder="Display Name Here" /></p>
<p><input type="email" class="form-control" id="comentemail" name="comentemail" required placeholder="name@email.com" />
    <input type="email" id="commenttest" style="display:none;" name="commenttest" size="25" />
    <input type="text" id="commenttesttxt" style="display:none;" name="commenttesttxt" size="25" />
</p>
<input id="subscribecheckbox" name="subscribecheckbox" type="checkbox" />&nbsp;&nbsp;<label class="box-title lightblue" for="subscribecheckbox">Subscribe to Long-View Living</label>&nbsp;&nbsp;&nbsp;&nbsp;<input id="followcommentscheckbox" name="followcommentscheckbox" type="checkbox" />&nbsp;&nbsp;<label class="box-title lightblue" for="followcommentscheckbox">Be Notified of Followup Comments via EMail</label>
<br /><br />
<textarea runat="server" class="ckeditor" cols="20" id="CKEditor" name="CKEditor" rows="10"></textarea>
<br />

1 个答案:

答案 0 :(得分:0)

解决: 注意 - 我的解决方案涉及从CKEditor切换到Summernote,但我不认为应该更改此解决方案。每个编辑都存在同样的问题。

在我的aspx中,这个编辑器位于for循环中。我循环访问其中包含五个博客条目的DataTable。我正在循环播放&#34; i&#34;所以我可以使用该值来唯一标识每篇博文中的元素。

int i;
  for (i = 0; i <= (myBlogDataTable.Rows.Count - 1); i++)

博客文章在此for循环中,评论与每个博客相关联,现在也可以与i的值绑定。

考虑到这一点,我正在显示Summernote编辑器和我的提交按钮,如下所示,根据i的值创建和识别每个对象。这为每个对象提供了一个我可以在代码隐藏中获取的唯一句柄。

<% if (i == 0)
    { %>
        <br /><br />
        <textarea runat="server" id="CommentsEditor0" name="CommentsEditor0" class="summernote" ></textarea>
        <br />
        <button runat="server" id="SubmitButton0" value="0" type="submit" class="btn btn-info" onserverclick="SubmitButton_Click">Submit</button>
<%}
    else if (i == 1)
    {%>
        <br /><br />
        <textarea runat="server" id="CommentsEditor1" name="CommentsEditor1" class="summernote" ></textarea>
        <br />
        <button runat="server" id="SubmitButton1" value="1" type="submit" class="btn btn-info" onserverclick="SubmitButton_Click">Submit</button>
<%}
    else if (i == 2)
    {%>
        <br /><br />
        <textarea runat="server" id="CommentsEditor2" name="CommentsEditor2" class="summernote" ></textarea>
        <br />
        <button runat="server" id="SubmitButton2" value="2" type="submit" class="btn btn-info" onserverclick="SubmitButton_Click">Submit</button>
<%}
    else if (i == 3)
    {%>
        <br /><br />
        <textarea runat="server" id="CommentsEditor3" name="CommentsEditor3" class="summernote" ></textarea>
        <br />
        <button runat="server" id="SubmitButton3" value="3" type="submit" class="btn btn-info" onserverclick="SubmitButton_Click">Submit</button>
                <%}
    else if (i == 4)
    {%>
        <br /><br />
        <textarea runat="server" id="CommentsEditor4" name="CommentsEditor4" class="summernote" ></textarea>
        <br />
        <button runat="server" id="SubmitButton4" value="4" type="submit" class="btn btn-info" onserverclick="SubmitButton_Click">Submit</button>
<%}%>

现在,在代码隐藏中,我可以做一些非常类似的事情来获取我想要的值:

string myButtonID = ((HtmlButton)sender).Attributes["Value"].ToString();
switch (myButtonID)
{
    case "0":
        myCurrentBlogID = myStringUtility.GetField(currentid, ",", 1);
        comment = CommentsEditor0.InnerText;
        break;
    case "1":
        myCurrentBlogID = myStringUtility.GetField(currentid, ",", 2);
        comment = CommentsEditor1.InnerText;
        break;
    case "2":
        myCurrentBlogID = myStringUtility.GetField(currentid, ",", 3);
        comment = CommentsEditor2.InnerText;
        break;
    case "3":
        myCurrentBlogID = myStringUtility.GetField(currentid, ",", 4);
        comment = CommentsEditor3.InnerText;
        break;
    case "4":
        myCurrentBlogID = myStringUtility.GetField(currentid, ",", 5);
        comment = CommentsEditor4.InnerText;
        break;
}