代码之家  ›  专栏  ›  技术社区  ›  Ryan Kinal

ASP.NET代码隐藏无法识别Tinymce文本区域更改

  •  6
  • Ryan Kinal  · 技术社区  · 13 年前

    我有几个 <asp:TextBox TextMode="MultiLine"> 页面上的元素。加载时,我填充它们(通过后面的VB代码),然后将它们转换为tinymce编辑器(通过jquerytinymce插件)。每个文本框也有一个与其关联的按钮,目的是将文本送回代码,以便插入数据库。

    我之前发现,当单击提交按钮时,我必须将编辑器的内容“保存”到文本框中,但这不是我的问题。即使我这样做了,编辑也不会显示在代码后面。

    正如我所提到的,我正在使用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还比较陌生,但这种行为在我看来很荒谬。我一定错过了一些重要的东西。
    1 回复  |  直到 13 年前
        1
  •  6
  •   Ryan Kinal    13 年前

    $(this).tinymce({
        script_url : '../scripts/tiny_mce.js',
        theme: 'advanced',
        plugins: 'save',
        theme_advanced_buttons1 : 'bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,image,link,unlink,|,fontsizeselect,forecolorpicker',
        theme_advanced_buttons2 : '',
        theme_advanced_buttons3 : '',
        content_css : '../css/landingpage-tinymce.css',
        onchange_callback: function(ed) {
            ed.save();
        }
    });
    

    onchange_callback