2010-01-09 7 views
5

Estoy agregando controles de entrada de HTML en la página dinámicamente a través del botón "agregar cuadro de texto", pero después de la publicación, finalmente se eliminan. ¿Existe una práctica fácil y buena que me ayude a mantener los controles y sus valores después de la publicación de la página?Mantener los controles html creados mediante programación después de la devolución

Gracias.

Editar:

  • estoy usando Javascript para crear controles dinámicos en la página
  • No estoy tratando con la subida de archivos, sólo la creación de las cosas de campo personalizado.

Creo que necesito anular los eventos SaveViewState y LoadViewState para mantener mis controles en ViewState.

+0

¿Te agregar los controles de entrada usando javascript o C#? –

+0

@Madi: estoy usando Javascript para agregar controles en la página. – Tarik

Respuesta

2

Ver siguientes:
http://urenjoy.blogspot.com/2009/02/add-dynamic-buttons-and-handle-click.html
que necesita para reemplazar los métodos SaveViewState y LoadViewState para guardar después de la devolución de datos, Ver siguiente ejemplo
http://urenjoy.blogspot.com/2009/03/create-dynamic-dropdownlists-in-aspnet.html
y para recuperar el valor véase el siguiente ejemplo:
http://urenjoy.blogspot.com/2009/02/retrieve-value-of-dynamic-controls-in.html

+0

Gracias por las recomendaciones, las revisaré ahora. Espero poder encontrar la respuesta allí. – Tarik

0

ya que los recibirá en la publicación posterior, ¿no podría volver a crearlos dinámicamente en el servidor?

+0

Esto también es lo que estaba pensando, pero dado que es una técnica bastante común, pensé que tal vez había otra forma mejor de hacerlo. – Tarik

+0

Las colecciones de control para las páginas de mi compañía están casi completamente integradas en el código subyacente, porque tenemos que admitir diseños definibles por el usuario. Creo que la idea de Gaby funcionará bien, pero puede encontrarse con algunos conflictos con los controles agregados dinámicamente y con viewstate. Si usted o no experimenta este problema dependerá de cómo se usa su página. –

+1

Entonces, el framework MVC funcionaría mejor para su empresa que Web Forms. – Tarik

0

Si los controles difieren de devolución de datos a postbck dependiendo de lo que el usuario introduce entonces puede intentar almacenar el html ito una clase separada, donde tendrá propiedades estáticas como public static string WriteHTMLSubmit = ""

Si no, entonces codificar en el código detrás, siendo esta la práctica mejor ... if(page.isPostBack){<write contrls>}

2

Guarde la página! Use ajax para publicar los datos y un cargador de archivos flash si se trata de subir archivos. Entonces la página nunca se actualiza, y hay mucho menos código para volver a hacer los controles creados dinámicamente.

+0

Pensé lo mismo, pero la página es enorme, así que no sería una buena práctica usar Ajax, creo. Son demasiados datos publicados en el servidor. Y no estoy tratando con Uploads en realidad, lo que estoy haciendo es crear campos personalizados y enviar los valores a los datos junto con los otros valores. – Tarik

Cuestiones relacionadas