Postback y controles dinámicos

294 views
Skip to first unread message

andy O

unread,
Jul 14, 2005, 3:58:03 PM7/14/05
to
Hola a todos.

Estoy haciendo un Web File Manager, basándome en un código que está hecho en
visual basic net.

El problema es el siguiente.

Tengo un método que crea una tabla con los datos de los archivos (Listador
de archivos y carpetas) y que tiene funcionabilidad de ordenación y
navegación a través de las subcarpetas.

Para ello utilizo este método se invoca en el page load.

algo como: if (!Page.IsPostBack) CargaTabla();

A demás de ello tiene funcionalidad de crear carpetas y borrar archivos o
carpetas.
Para ello genero dos controladores de eventos. El primero implementa un
método que crea carpetas y luego llama al método CargaTabla();

Donde falla mi lógica es cuando deseo borrar los archivos o carpetas.
En este caso uso checkbox , y en el manejador de eventos del botón "borrar
archivos" recorro la colección de botones y pregunto si es checkbox y si
tienen el "checked" , luego borro los archivos.

Pero la aplicación se cae porque como en el load no se cargan los controles
checkbox debido al postback, entonces no puedo acceder a los controles.

¿Qué se puede hacer? La lógica era borrar los archivos seleccionados y luego
actualizar la tabla pero no se puede.

Espero que me ayuden.

PD. ¿Hay alguna propiedad o método que me pueda decir que control hizo el
postback?


gracias


Esparta Palma

unread,
Jul 14, 2005, 5:38:22 PM7/14/05
to

--- ASP.NET: Which Control Posted Back? ---
http://www.eggheadcafe.com/articles/20050609.asp

Espero te sirva.

--
¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º

Espartaco Palma Martínez
SysOp http://www.PortalFox.com
México D.F.
MoBlogs!
http://weblogs.golemproject.com/esparta/
http://www.espartha.com/blog/

andy O

unread,
Jul 14, 2005, 4:16:05 PM7/14/05
to
Gracias Espartaco.
Con ese método ya no necesito implementar el código en el clic del boton si
no el load de la página.


"Esparta Palma" escribió:

Sergio Florez M.

unread,
Jul 14, 2005, 4:16:56 PM7/14/05
to
Como generas los CheckBox? Estan dentro del grid?

--
Sergio Florez M.
Medellín, Colombia

"andy O" <an...@discussions.microsoft.com> wrote in message
news:1846EE04-1CA2-4A5E...@microsoft.com...

andy O

unread,
Jul 14, 2005, 4:31:05 PM7/14/05
to
Con HtmlTable. El problema son los checkbox.

Cada vez que doy clic a los botones deaccion (crear carpeta o eliminar)
Debe refrescar la tabla.

En el caso de crear carpeta.
en el evento click del botón:
CrearunaCarpeta();
RefrescarTabla();

y el page_load
if (!Page.IsPostBack) CargaTabla();

allí perfecto.

Pero cuando usao el boton eliminar.

borrarArchivos(); ///El método recorre las colecciones de control y busca
los checkbos seleccionados y luego borra los archivos relacionados.
RefrescarTabla();

Debería funcionar, pero se "cae" cuando recorre la coleccion de controles,
Esto es debido a que no existen los controles ya que no se ha llamado al
método
RefrescarTabla();
Este método construye la tabla en base al listado de directorios y archivos.

¿Cómo tener disponibles los controles y a la vez actualizarlos despues de
eliminar los archivos o directorios?


"Sergio Florez M." escribió:

Sergio Florez M.

unread,
Jul 14, 2005, 5:52:15 PM7/14/05
to
Los controles que se generan dinamicamente y que resultan en elementos
<input>, como el CheckBox, pueden ser capturados de la coleccion
Request.Form[]. Puedes averiguar si la funcion
Request.Form.Get("IdDelCheckBox") devuelve un dato. Si esa función evalua a
null significa que el checkbox no fue seleccionado, pero si evalua a "on"
significa que el checkbox fue seleccionado.

--
Sergio Florez M.
Medellín, Colombia

"andy O" <an...@discussions.microsoft.com> wrote in message

news:C328F0E9-8DF9-4458...@microsoft.com...

andy O

unread,
Jul 15, 2005, 11:04:03 AM7/15/05
to
Gracias, por el dato.
Pero hay alguna otra manera de hacerlo al estilo del NEt?

"Sergio Florez M." escribió:

Sergio Florez M.

unread,
Jul 15, 2005, 11:40:47 AM7/15/05
to
Esa es la unica opción que he encontrado hasta el momento.

--
Sergio Florez M.
Medellín, Colombia

"andy O" <an...@discussions.microsoft.com> wrote in message

news:B7C67894-F29A-4BFD...@microsoft.com...

andy O

unread,
Jul 15, 2005, 4:23:08 PM7/15/05
to
Gracias,
Parece que es la única manera.
ASp Net tiene problemas con eso.

"Sergio Florez M." escribió:

Sergio Florez M.

unread,
Jul 15, 2005, 6:24:27 PM7/15/05
to
Yo no lo llamaria problema. Al fin y al cabo existe la forma de capturar la
información y la verdad es que no hay que hacer ninguna maniobra extraña,
tan solo buscar en una coleccion y listo.

--
Sergio Florez M.
Medellín, Colombia

"andy O" <an...@discussions.microsoft.com> wrote in message

news:3B037F68-694D-4762...@microsoft.com...

andy O

unread,
Jul 18, 2005, 8:51:03 AM7/18/05
to
A lo que me refería es que parece que no hay una manera de hacerlo usando el
punto de vista de NEt. Es decir usando controles.

Al parecer como son controles dinámicos, "no existen" al menos que lo crees
en el método load.
Y si haces eso en load los datos no se refrescan , debido a que primero se
ejecuta el load y luego los eventos de los controles.
En mi caso, en el boton se crea una nueva crpeta y luego se debe refrescar.


"Sergio Florez M." escribió:

giancarlo...@gmail.com

unread,
Sep 28, 2015, 5:13:19 PM9/28/15
to

DSDS
Reply all
Reply to author
Forward
0 new messages