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

DATALIST con TEMPLATE

Estas en el tema de DATALIST con TEMPLATE en el foro de ASPX (.net) en Foros del Web. Salu2. Estoy usando Visual Studio 2005 y framework 2.0. Actualmente tengo un DATALIST en el cuál edito el template y le pongo unas etiquetas que ...
  #1 (permalink)  
Antiguo 13/09/2010, 20:01
 
Fecha de Ingreso: julio-2006
Ubicación: En algún lugar de un grán pais
Mensajes: 112
Antigüedad: 18 años, 4 meses
Puntos: 2
DATALIST con TEMPLATE

Salu2.
Estoy usando Visual Studio 2005 y framework 2.0.
Actualmente tengo un DATALIST en el cuál edito el template y le pongo unas etiquetas que se llenan de a cuerdo al origen de datos.
En el template de ITEM TEMPLATE está identico y en el ALTERNATING ITEM TEMPLATE
En los 2 pongo una imagen, para que se vea mas bonito, le pongo una imagen distinta , que es una flecha azul y la otra es una flecha azul pero mas fuerte.

Lo que necesito hacer es lo siguiente:
1.- Voy a leer registro pro registro en el evento: DataList1_ItemDataBound.
2.- Voy a revisar el contenido del valor de una de las label que puse y que está así:

Código:
<asp:Label ID="SECLabel" runat="server" Text='<%# Eval("MASECU") %>' Font-Size="X-Small" Width="96px"></asp:Label><br />
3.-Posteriormente necesito verificar que el valor que tenga si es "X" entonces no hacer nada, pero si es "Y" entonces necesito cambiar del <img> la imagen que presenta y cambiarla por otra...

4.- Necesito identificar cual es el IMG, porque como ven.. tengo 2 uno para el item y otro para el alternate. ahi no se´como hacerle para sabe cual tengo que modificar por ejemplo:

Código:
<img src="~/../imgs/flechaazul02.png" style="width: 24px; height: 24px" />
como le digo.. este es el img del normal o este es el img del alternativo... y para pasarle que envez de la flecha azul, use la flecha "ROJA" ?...

Actualmente mi datalist está asi:

Código:
<asp:DataList ID="DataList1" runat="server" CellPadding="0" RepeatColumns="8" RepeatDirection="Horizontal" Font-Names="Arial" Font-Size="X-Small" BorderColor="#336666" BackColor="White" BorderStyle="Double" BorderWidth="3px" GridLines="Horizontal">
    <FooterStyle BackColor="White" ForeColor="#333333" />
    <SelectedItemStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />
    <ItemTemplate>
        <table>
            <tr>
                <td style="font-size: x-small; ">
                    SEC:
                    <asp:Label ID="SECLabel" runat="server" Text='<%# Eval("MASECU") %>' Font-Size="X-Small" Width="96px"></asp:Label><br />
                    PERFIL:
                    <asp:Label ID="PERFILLabel" runat="server" Text='<%# Eval("PERFIL") %>' Font-Size="X-Small" Width="104px"></asp:Label><br />
                    LIMITE:
                    <asp:Label ID="MONFINLabel" runat="server" Text='<%# Eval("MAMFIN", "{0:###,###,###,###.00}") %>' Font-Size="X-Small" Width="104px"></asp:Label>
                </td>
                <td>
                    <img height="24" src="~/../imgs/flechaazul01.png" style="width: 24px; height: 24px" />
                    </td>
            </tr>
        </table>
    </ItemTemplate>
    <ItemStyle BackColor="White" ForeColor="#333333" />
    <AlternatingItemTemplate>
        <table>
            <tr>
                <td style="font-size: x-small">
                    SEC:
                    <asp:Label ID="SECLabel" runat="server" Text='<%# Eval("MASECU") %>'></asp:Label><br />
                    PERFIL:
                    <asp:Label ID="PERFILLabel" runat="server" Text='<%# Eval("PERFIL") %>'></asp:Label><br />
                    LIMITE:
                    <asp:Label ID="MONFINLabel" runat="server" Text='<%# Eval("MAMFIN", "{0:###,###,###,###.00}") %>'></asp:Label>
                </td>
                <td>
                    <img src="~/../imgs/flechaazul02.png" style="width: 24px; height: 24px" />
                 </td>
            </tr>
        </table>
    </AlternatingItemTemplate>
</asp:DataList>

Gracias por su apoyo de antemano.
  #2 (permalink)  
Antiguo 14/09/2010, 12:43
 
Fecha de Ingreso: enero-2004
Ubicación: mexico
Mensajes: 110
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: DATALIST con TEMPLATE

Lo que podrías hacer es utilizar un <asp:Image en lugar de <img.y en el alternative item template ponerle un atributo que los distinga, ejemplo:


<asp:Image .... IsAlternative="True" />

y en el momento que recorras los items, buscas ese control y su respectivo atributo:

control.Attributes["IsAlternative"] != null && control.Attributes["IsAlternative"] = "True"

Saludos.
__________________
Controles Web para ASP.NET (Tabstrip, Datepicker, Calendar, Panel colapsable...) en
www.enlasys.com
  #3 (permalink)  
Antiguo 14/09/2010, 21:15
 
Fecha de Ingreso: julio-2006
Ubicación: En algún lugar de un grán pais
Mensajes: 112
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: DATALIST con TEMPLATE

Hola, te agradezco.
Me sirvió mucho lo que pusiste.. aunque no fué.. el codigo exacto.. sin embargo, me permitió hacerlo de todos modos.
A continuación pongo el código que tengo.



Código:
Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound

        If CType(e.Item.FindControl("PERFILLabel"), Label).Text = Me.Session("perfil") Then
            Dim imagen As System.Web.UI.WebControls.Image = e.Item.FindControl("imgItem")
            imagen.ImageUrl = "~/imgs/flechaverde.png" Then
        End If
    End Sub
Yo usaba el IMG de HTML, pero con lo que me ayudaste, ya usé el IMG de ASP, y ahi si ya puedo.
Ahora bien.. no identifiqué 2 imagenes diferentes...
Puesto que tengo un templeta para el item y otro para el alternate y en los 2 se llaman igual.
Asi que para mi me funciona SOLO cuando uno de los controles que es un LABEL trae un valor, igual a otro del SESSION, entonces esa imagen se cambia por otra de color verde (las otras son azules muy bajitas parecidas una para el item y otra para el alternate).

Etiquetas: datalist, template, aspx
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 18:50.