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: 21 años, 3 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: 24 años
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(c, Image)
      
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: 21 años, 3 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: 24 años
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") = -1, img.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 i 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: 21 años, 3 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: 24 años
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 07:29.