如何在asp.net中发布时获取CKEDITOR的内容
我在我的ASP.NET项目中使用了CKEDITOR,该页面包含asp:TextBox
带有TextMode="Multiline"
asp:TextBox
和一个linkbutton。 当我按下linkbutton时,我无法在回发中获得TextBox值。没有错误发生…如何在服务器端获取内容? 我正在考虑使用jQuery跟踪CK内容的变化并将其复制到隐藏的textarea ..但似乎不对。
我使用的是CK v4.2的 javascript版本,而不是.net库版本。
加成:
在使用CKEditor.zip文件下载的示例中,您可以看到使用$ _POST在服务器端获取文本很容易。
为什么在ASP.NET中不是?
更新:
使用RadScriptManager,RadAjaxManager和RadAjaxPanel(来自telerik)时会发生此问题。
在ASPX页面上将CKEditor控件设置为:
在页面背后的代码:
protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) { string text1 = CKEditor1.Text; string text2 = CKEditor1.Value; ... } }
请记住添加/包含对CKEditor二进制文件的正确引用
我遇到了同样的问题。 在一个简单的页面上,我测试了一个LinkButton和一个Button。 问题是LinkButton不直接提交表单。 它呈现为链接并调用__doPostBack事件,因此这对CKEditor来说是一个问题。 我试图设置像Nirmal建议的textarea,但这也没有用。 这是我解决它的方式。
标题:
在表格内:
C#
protected void X_Click(object sender, EventArgs e) { divResult.InnerHtml = hfBody.Value; tBody.Text = hfBody.Value; }
这样的事情可能有所帮助
string newText = ((CKedit.CKeditor)(e.Item.FindControl("txtBox"))).Value;
否则使用updatepanel保留其在回发上的值
我的一个同事通过设置setup
属性来解决它,当init初始化时:
setup: function (ed) { ed.on('change', function (e) { ed.save(); }); }
这将在调用更改事件时将内容保存到编辑器。
在触发回发事件之前调用此函数设置值
function setValue() { $("#txtinstruction").val(CKEDITOR.instances.txtinstruction.getData()); }
txtinstruction
是textbox或textarea的id