He creado un control swapper de elementos que consta de dos cuadros de lista y algunos botones que me permiten intercambiar elementos entre las dos listas. El intercambio se hace usando javascript. También muevo elementos hacia arriba y hacia abajo en la lista. Básicamente, cuando muevo los elementos al cuadro de lista a la derecha, guardo las claves de datos de los elementos (GUID) en un campo oculto. En la devolución, simplemente leí los GUID del campo. Todo funciona bien pero en la devolución de datos, recibo la siguiente excepción:Elementos de ListBox reorganizados con JavaScript que causan un error de validación de eventos en la devolución de datos
No válido postback o argumento de devolución de llamada. La validación de eventos se habilita mediante la configuración <% @ Page EnableEventValidation = "true"%> en una página. Por motivos de seguridad, esta función verifica que los argumentos para la devolución de datos o los eventos de devolución de llamada se originan en el control del servidor que los generó originalmente. Si los datos son válidos y esperados, utilice el método ClientScriptManager.RegisterForEventValidation para registrar la devolución de datos o los datos de devolución de llamada para la validación.
He preparado una aplicación de prueba. Todo lo que tienes que hacer es descargar el archivo y ejecutar el proyecto. En la página web, seleccione los 3 elementos, presione Agregar todo, luego mueva el tercer elemento un nivel y luego presione "Botón". El error aparecerá. Desactivar la validación de eventos no es aceptable. ¿Alguien puede ayudarme? He pasado dos días sin encontrar una solución.
FYI: He descargado la aplicación y nunca tiene este error - Yo, sin embargo, aparece un error acerca col1 no ser parte de la tabla de datos, o algo por el estilo (no mirarlo en este momento). Es posible que desee comprobar para asegurarse de que su ejemplo cause este error, porque no es para mí. –
Además, el "movimiento" de ida y vuelta no funciona en absoluto en Firefox, es posible que desee mencionarlo o solucionarlo. –
El error con col1 se debe a destinationDT.Columns.Add ("colUID", typeof (Guid)); y destinationDT.Columns.Add ("col1", typeof (cadena)); que solo se invocan si no están en la parte posterior de la publicación, pero se requieren cuando se hace clic en el botón. – Aleris