Foros del Web » Programando para Internet » ASPX (.net) »

Autobindear un datagrid

Estas en el tema de Autobindear un datagrid en el foro de ASPX (.net) en Foros del Web. Hola gente, mi duda está un poco complicada, espero que alguien tenga una respuesta. El asunto es sencillo: 1) Tengo un datagrid que solo tiene ...
  #1 (permalink)  
Antiguo 23/03/2006, 11:34
 
Fecha de Ingreso: mayo-2003
Ubicación: Monte VI D.E.O.
Mensajes: 78
Antigüedad: 21 años
Puntos: 0
Autobindear un datagrid

Hola gente, mi duda está un poco complicada, espero que alguien tenga una respuesta.
El asunto es sencillo:
1) Tengo un datagrid que solo tiene Template Columns
2) En uno de esos Template Columns inserté Controles HyperLink
3) Cuando el datagrid se bindea (desde un servicio web), llena algo como esto:

Col1 Col2
#001 Carp1.Doc1
#002 Carp1.Doc2
#003 Carp1.Doc3
#101 Carp2
#004 Carp1.Doc4

El Datagrid lo que contiene son ligas a documentos y carpetas, el tema es que de vez en cuando aparecen carpetas como Carp2
Se supone que el usuario debería hacer click en Carp2 y el Datagrid tendría que volver a bindearse automáticamente quedando de esta forma por ejemplo:

Col1 Col2
#201 Carp2.Doc1
#202 Carp2.Doc2

Hay varias opciones para hacer eso, tan simple como mandar un js y que redireccione a la misma pagina con un parámetro que yo pueda leer en el PageLoad, el problema es que eso que estoy haciendo, tengo que transformarlo después en un WebPart para ser usado en SharePoint y me pidieron NO USAR Javascripts, y hasta donde sé desde un webpart no se puede mandar un response.redirect que luego el mismo webpart lea un parámetro de la página y bindee el datagrid

Entonces, cómo puedo obtener la solucion a mis problemas sin necesidad de usar Response.Redirect o Javascript? alguien sabe como bindear un datagrid sobre sí mismo?

Espero que haya una respuesta salvadora... muchas gracias...

Henry

PD: Si por a o por b alguien quiere ver el proyecto o el codigo, puede mandarme un mail a [email protected]
__________________
:adios: Henry Rodriguez :adios:
El todo es mucho mas que la suma de las partes<-- No se quien lo dijo pero suena interesante :)
  #2 (permalink)  
Antiguo 24/03/2006, 10:25
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Se supone que el usuario debería hacer click en Carp2 y el Datagrid tendría que volver a bindearse automáticamente quedando de esta forma por ejemplo:
MM... no te entiendo bien, pero si lo que quieres es rebinder el datagrid solo basta con pasarle nuevamente el datasource con los datos que necesitas y hacer un Bind(), o desglosa un poco mas tu problema...

Por cierto respecto a la firma que tienes esa frase la dijo Aristóteles y es así:

“El todo es mucho más complejo que la suma de sus partes”

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 26/03/2006, 01:13
 
Fecha de Ingreso: mayo-2003
Ubicación: Monte VI D.E.O.
Mensajes: 78
Antigüedad: 21 años
Puntos: 0
Rootk, gracias por contestarme en primer lugar, en segundo lugar, la situación no es tan fácil como volver a pasarle el ds y bindear otra vez.
Imagina un Datagrid que se llena con controles hyperlink button (los controles se agregan en un template column del datagrid).
El problema está en que cuando se renderea el datagrid y se bindea con datos, los hyperlink buttons se van creando en tiempo de ejecucion, por lo que no hay un manejador de eventos para cada hyperlink button.

Resumamos mi problema a esta consulta:
Como puedo hacer para agregar manejadores de eventos a controles hyperlink button que se dibujan dinamicamente en un datagrid?
O sea, dependiendo del resultado del datasource, no sé si el datagrid va a tener una o 20 filas, por lo tanto, no sé si va a tener uno o 20 hyperlink buttons, sin embargo, necesito que al hacer click en uno de ellos, caiga en un manejador de evento sabiendo en cuál hice click (e.item).
Como puedo hacer eso siendo que los controles hyperlink se van a dibujar en tiempo de ejecución?
__________________
:adios: Henry Rodriguez :adios:
El todo es mucho mas que la suma de las partes<-- No se quien lo dijo pero suena interesante :)
  #4 (permalink)  
Antiguo 27/03/2006, 06:40
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 19 años, 10 meses
Puntos: 0
Supongo que estas creando objetos Linkbutton desde codigo y enseguida los estas insertando en el templatecolumn del datagrid, le puedes agregar eventos usando algo asi:

System.Web.UI.WebControls.LinkButton oLink = new LinkButton();
oLink.Click +=new EventHandler(oLink_Click);
...

El evento oLink_Click lo creas pulsando nuenamente [tab] o declarandolo tu mismo.

private void oLink_Click(object sender, System.EventArgs e)
{
...
...
}

? pero si los creaste en modo de diseño arrastrando y soltando controles, los eventos se crean para cada control en el grid cuando se enlaza con datos. (hasta donde los he usado, asi ha sido)

saludos

Última edición por splinter; 27/03/2006 a las 06:50
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:07.