4

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

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

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

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

4

6 回答 6

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 二进制文件的正确引用

于 2013-08-22T11:58:43.260 回答
1

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

标题:

<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;
}
于 2014-02-28T01:18:10.403 回答
0

我的一位同事通过setup在 init tinymce 时设置属性来解决它,如下所示:

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

这将在调用更改事件时将内容保存到编辑器。

于 2014-02-28T13:35:48.110 回答
0

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

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

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

于 2013-08-22T11:54:01.083 回答
0

您将获得数据,请尝试以下代码:

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

于 2019-10-14T07:46:12.757 回答
-1

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

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

txtinstruction是文本框或文本区域的 id

于 2013-08-22T11:56:49.727 回答