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

Acceso a elementos del HeaderTemplate en Datalist

Estas en el tema de Acceso a elementos del HeaderTemplate en Datalist en el foro de ASPX (.net) en Foros del Web. Pues eso, estoy intentando acceder a elementos que tengo dentro del headertemplate de un datalist pero no encuentro la forma. En concreto quiero cambiar el ...
  #1 (permalink)  
Antiguo 25/03/2008, 11:23
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Acceso a elementos del HeaderTemplate en Datalist

Pues eso, estoy intentando acceder a elementos que tengo dentro del headertemplate de un datalist pero no encuentro la forma. En concreto quiero cambiar el src de un elemento img que me ordena el datalist ascendente o descendente, en funcion de la ordenacion mostrara un icono u otro.
__________________
Moitas Gracias desde Galiza!!!
  #2 (permalink)  
Antiguo 26/03/2008, 01:15
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Acceso a elementos del HeaderTemplate en Datalist

La plantilla de cabecera de una datalist es el control de índice 0 en la colección de controles, por lo que yo lo que hago es recorrer los controles contenidos en el control 0 y comprobar si es el que quiero modificar. Por ejemplo:

Código PHP:
For Each c As Control In Me.dlMiLista.Controls(0).Controls
  Select 
Case c.ID
    
Case "imgFlechaOrden"
      
Dim img As Image CType(cImage)
      
img.ImageUrl ruta
  End Select
Next 
Me imagino que también puede funcionar si buscas directamente el control con FindControl() dentro de Me.dlMiLista.Controls(0).

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 26/03/2008, 03:06
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Acceso a elementos del HeaderTemplate en Datalist

Pues creo que no va, lo he intentado como me has dicho, y nada. tambien he cambiado el tipo de objeto en el codigo ya que usaba un img y no un asp:image, tambien al reves, es decir, dejando tu codigo y poniendo un asp:image.

He tratado tb de encontrar el control con el findcontrol directamente y me da un error al intentar referenciar el control, ya que no lo debe encontrar.
__________________
Moitas Gracias desde Galiza!!!
  #4 (permalink)  
Antiguo 26/03/2008, 05:32
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Acceso a elementos del HeaderTemplate en Datalist

Comprueba que está de esta manera:

Código:
<asp:DataList ID="dlMiLista" Runat="server" ...>
<HeaderTemplate>
<asp:Image id="imgFlechaOrden" ImageUrl="~/imagen/flechaArriba.gif" Runat="server"></asp:Image>
</HeaderTemplate>
....
</asp:DataList>
Código PHP:
If Me.dlMiLista.Controls(0).FindControl("imgFlechaOrden"Is Nothing Then
  Dim img 
As Image CType(Me.dlMiLista.Controls(0).FindControl("imgFlechaOrden"), System.Web.UI.WebControls.Image)
  
img.ImageUrl Iif(img.ImageUrl.IndexOf("Arriba") = -1img.ImageUrl.Replace("Abajo","Arriba"), img.ImageUrl.Replace("Arriba","Abajo"))
End If 
Con la primera condición verificas que el control imgFlechaOrden realmente existe en la cabecera (índice 0 del DataList) y no te dará error en caso de que no lo encuentre (tampoco te lo cambiará, lógicamente).

Para verificar que efectivamente la cabecera está en el índice 0 del DataList puedes hacer esto:
Código PHP:
For As Integer 0 To Me.dlMiLista.Controls.Count -1
  Response
.Write(Me.dlMiLista.Controls(i).GetType.Name " - " Me.dlMiLista.Controls(i).ID "<br>")
Next 
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #5 (permalink)  
Antiguo 26/03/2008, 06:33
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Acceso a elementos del HeaderTemplate en Datalist

Ok, con esto funciono, salvo por un detalle, al comprobar si existe o no el objeto debemos poner:
If Not (Condicion) Is Nothing Then

Muchas gracias por la ayuda
__________________
Moitas Gracias desde Galiza!!!
  #6 (permalink)  
Antiguo 26/03/2008, 06:55
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Acceso a elementos del HeaderTemplate en Datalist

Es verdad, siempre me como el Not
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 16:18.