¿Cómo puedo volver a crear una instancia de los controles dinámicos de usuario de ASP.NET sin usar una base de datos?

Actualmente estoy trabajando con una parte de mi aplicación que utiliza controles de usuario web dinámicos y estoy teniendo algunos problemas para descubrir la mejor manera de volver a crear una instancia de los controles en la devolución de datos utilizando ViewState o algún otro método que no lo haga. Requiero que consulte una base de datos en cada devolución.

Básicamente, lo que tengo en mi página es un control de usuario que contiene un panel para mantener una cantidad variable de controles de usuarios secundarios y un botón que dice "Agregar control" cuya función es bastante autoexplicativa.

El control de usuario infantil es bastante simple; es solo un botón de eliminación, un menú desplegable y un control de selección de tiempo dispuestos en una fila. Cuando el usuario hace clic en el botón Agregar control en el control principal, se agrega una nueva 'fila' al panel que contiene los controles secundarios.

Lo que me gustaría hacer es poder agregar y eliminar controles a esta colección, modificar valores y realizar las operaciones que necesito para hacer 'en memoria' sin tener que hacer ninguna llamada a una base de datos. Cuando termine de agregar controles y de rellenar sus valores, me gustaría hacer clic en "guardar" para guardar / actualizar todos los datos de los controles a una base de datos a la vez. Actualmente, la única solución que he encontrado es simplemente guardar los datos en la base de datos de cada publicación y luego usar las filas almacenadas en la base de datos para volver a crear una instancia de los controles en la devolución de datos. Obviamente, esto obliga al usuario a guardar los cambios en la base de datos en contra de su voluntad y, en caso de que quieran cancelar el trabajo con los controles sin guardar sus datos, se debe realizar un trabajo adicional para garantizar que se eliminen las filas confirmadas anteriormente.

Por lo que he aprendido sobre el uso de controles dinámicos, sé que es mejor agregar los controles a la página durante la etapa de inicio del ciclo de vida y luego llenar sus valores en la etapa de carga. También aprendí que la única forma de asegurarse de que puede persistir en el estado de visualización del control es asegurarse de que le asigne a cada control dinámico una ID única y de asignarle la misma ID exacta cuando vuelva a crear una instancia del control. También aprendí que ViewState no se carga realmente hasta después de la etapa Init en el ciclo de vida. Aquí es donde radica mi problema. ¿Cómo almaceno y recupero los nombres de estos controles si no puedo usar el estado de visualización y no deseo realizar ninguna llamada a una base de datos? ¿Es este tipo de manipulación en la memoria / guardado de valores por lotes incluso posible utilizando ASP.net?

Cualquier ayuda es muy apreciada,

Micro

Respuestas a la pregunta(3)

Su respuesta a la pregunta