我在页面上有几个
我之前发现,当单击提交按钮时,我必须“保存”编辑器的内容到文本框中,但这不是我的问题。即使我这样做了,编辑仍然没有出现在代码后面。
正如我之前提到的,我正在使用jQuery。这是我的点击处理程序。请记住,在ASP.NET中所有按钮都是提交按钮,因此具有
在服务器端,我看不到提交按钮的点击处理程序中的任何编辑内容:
<asp:TextBox TextMode="MultiLine">
元素。在加载时,我通过VB代码将它们填充,然后通过jQuery TinyMCE插件将它们转换为TinyMCE编辑器。每个文本框还有一个关联的按钮,目的是将文本提交回代码后端以插入数据库。我之前发现,当单击提交按钮时,我必须“保存”编辑器的内容到文本框中,但这不是我的问题。即使我这样做了,编辑仍然没有出现在代码后面。
正如我之前提到的,我正在使用jQuery。这是我的点击处理程序。请记住,在ASP.NET中所有按钮都是提交按钮,因此具有
submit
类:$('input.submit').live('click', function() {
tinyMCE.EditorManager.triggerSave();
});
因此,当单击任何提交按钮时,所有tinyMCE编辑器都会触发其保存事件。执行此操作后,我通过JavaScript检查了我要查找的文本区域的值(再次使用Chrome的开发人员工具和console.log),并似乎已经进行了编辑:
console.log($(this).parent().find('textarea').val());
在服务器端,我看不到提交按钮的点击处理程序中的任何编辑内容:
Dim paragraph As String = Me.myTextArea.Text
' Results in the original text, not the edited text
其他注释:
- 每个编辑器都在自己的更新面板中
- 由于提交的内容(HTML)的特性,我不得不设置
EnableEventValidation="false"
和ValidateRequest="false"
(这是一个内部应用程序,并且这个建议来自一位更有经验的开发者) - 我对.NET相当新手,但是这种行为对我来说似乎太荒谬了。我一定是忽略了什么关键点。
OnCommand
,并具有适当的CommandName
和CommandArgument
,然后在代码后台中,我通过Me.myTextArea.Text
访问数据。 - Ryan KinalOnCommand
回发首先被执行(异步发送旧数据),然后我的 JS 中断点被触发(因此我可以在调试器中看到编辑后的文本),然后我的 VB 中断点被触发(因此我可以在 VB 调试器中看到旧文本)。这似乎是一个可靠的理论,但像我说的那样,尚未经过测试。 - Ryan Kinal