如何在asp.net中发布时获取CKEDITOR的内容

时间:2013-08-22 11:47:21

标签: jquery asp.net ckeditor

我在我的ASP.NET项目中使用了CKEDITOR,该页面包含asp:TextBox TextMode="Multiline"和链接按钮。 当我按下linkbutton时,我无法在回发中获得TextBox值。 没有错误发生...... 如何在服务器端获取内容?我想用jQuery跟踪CK内容的变化并将其复制到隐藏的textarea ..但似乎不对。

我使用的是 CK v4.2 的javascript版本,而不是.net库版本。

增加:
在使用CKEditor.zip文件下载的示例中,您可以看到使用$ _POST在服务器端获取文本很容易。
为什么在ASP.NET中没有?

更新
使用RadScriptManager,RadAjaxManager和RadAjaxPanel(来自telerik)时会出现此问题。

6 个答案:

答案 0 :(得分:2)

在ASPX页面上将CKEditor控件设置为:

<CKEditor:CKEditorControl ID="CKEditor1" runat="server"/>

在页面背后的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        string text1 = CKEditor1.Text;
        string text2 = CKEditor1.Value;
        ...
    }
}

请记住添加/包含对CKEditor二进制文件的正确引用

答案 1 :(得分:1)

我遇到了同样的问题。在一个简单的页面上,我测试了一个LinkBut​​ton和一个Button。问题是LinkBut​​ton不直接提交表单。它呈现为链接并调用__doPostBack事件,因此这对CKEditor来说是个问题。我尝试设置像Nirmal建议的textarea,但这也不起作用。以下是我解决它的方法。

部首:

<script type="text/javascript">
    $(document).ready(function () { $("#tBody").ckeditor(); });

    function setValue() {
        $("#hfBody").val(CKEDITOR.instances.tBody.getData());
    }
</script>

表格内:

<asp:TextBox ID="tBody" runat="server" TextMode="MultiLine"/>
<asp:HiddenField ID="hfBody" runat="server" />
<asp:LinkButton ID="btnSend" Text="Link" runat="server" OnClick="X_Click"
OnClientClick="setValue()"/>

C#

protected void X_Click(object sender, EventArgs e)
{
    divResult.InnerHtml = hfBody.Value;
    tBody.Text = hfBody.Value;
}

答案 2 :(得分:0)

这样的事情可能会有所帮助

string newText = ((CKedit.CKeditor)(e.Item.FindControl("txtBox"))).Value;

否则使用updatepanel将其值保留在回发

答案 3 :(得分:0)

我的一位同事通过在初始化时设置setup属性来解决这个问题:

setup: function (ed) {
    ed.on('change', function (e) {
        ed.save();
    });
}

当更改事件被调用时,这将把内容保存到编辑器。

答案 4 :(得分:0)

您将获得下面的代码尝试的数据:

var editorText = CKEDITOR.instances.txtinstruction.getData();  _msemailsetup.BodyMessage = editorText;

答案 5 :(得分:-1)

在触发回发事件之前调用此函数设置值

function setValue() 
{
     $("#txtinstruction").val(CKEDITOR.instances.txtinstruction.getData());
}

txtinstruction是textbox或textarea的ID