Tengo varios elementos <asp:TextBox TextMode="MultiLine">
en una página. En la carga, los rellene (a través del código VB detrás), y luego los convierto en editores TinyMCE (a través del plugin jQuery TinyMCE). Cada cuadro de texto también tiene un botón asociado, con el propósito de enviar el texto de vuelta al código subyacente para su inserción en una base de datos.TinyMCE Textarea Cambio no reconocido por ASP.NET CodeBehind
Descubrí anteriormente que cuando se hace clic en el botón Enviar, tengo que "guardar" el contenido del editor en el cuadro de texto, pero ese no es mi problema. Incluso después de hacerlo, las ediciones no aparecen en el código subyacente.
Como he mencionado, estoy usando jQuery. Aquí está mi controlador de clics. Tenga en cuenta que todos los botones son botones de envío en ASP.NET, por lo tanto, la clase submit
:
$('input.submit').live('click', function() {
tinyMCE.EditorManager.triggerSave();
});
lo tanto, cuando cualquier botón de envío se hace clic todos los editores tinymce tienen su evento guardar activa. Después de que esto se ejecuta, he comprobado el valor del área de texto que estoy buscando, (de nuevo, a través de JavaScript) y parece tener las ediciones (estoy usando las herramientas de desarrollador de Chrome y console.log):
console.log($(this).parent().find('textarea').val());
en el lado del servidor, sin embargo, no veo ninguna de las modificaciones en el controlador de clic para el botón de enviar:
Dim paragraph As String = Me.myTextArea.Text
' Results in the original text, not the edited text
Otras Notas:
- Cada editor está en su propio panel de actualización
- Debido a la naturaleza del contenido enviado (HTML), tuve que configurar
EnableEventValidation="false"
yValidateRequest="false"
(esta es una aplicación interna, y esta recomendación vino de un desarrollador más experimentado) - Soy bastante nuevo en .NET, pero este comportamiento me parece ridículo. Debo estar perdiendo algo crítico.
¿Cómo transfieres los datos al servidor? – Thariama
El botón usa 'OnCommand', con un apropiado' CommandName' y 'CommandArgument', y luego en el código subyacente, accedo a los datos por' Me.myTextArea.Text'. –
Creo que ya descubrí el problema, pero aún no he probado mi teoría. Creo que la devolución de datos 'OnCommand' se está ejecutando primero (enviando asíncronamente los datos antiguos), luego mi punto de interrupción en el JS es golpeado (entonces veo el texto editado en el depurador), y luego mi punto de interrupción en el VB es golpeado (por lo Veo el texto anterior en el depurador de VB). Parece una teoría sólida, pero como dije, no probó. –