Foros del Web » Programación para mayores de 30 ;) » .NET »

Repeater con DataSource (una List de C#)

Estas en el tema de Repeater con DataSource (una List de C#) en el foro de .NET en Foros del Web. Estoy dando mis primeros pasos en .NET. Ahora mismo trato de resolver el uso de Repeater para un proyecto web. Mi caso es casi identico ...
  #1 (permalink)  
Antiguo 23/12/2010, 14:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Mensaje Repeater con DataSource (una List de C#)

Estoy dando mis primeros pasos en .NET. Ahora mismo trato de resolver el uso de Repeater para un proyecto web.

Mi caso es casi identico al de este tutorial: http://msdn.microsoft.com/es-es/libr...atasource.aspx

Sin embargo no me funciona poner esto para un enlace, porque me lo escribe literalmente en vez de evaluarlo:
<%# Container.DataItem %>

En decir, mi link queda así:
Código ASP:
Ver original
  1. http://localhost:1532/WebSite10/img/%3C%25#%20Container.DataItem%20%20%25%3E

Lo que tengo es esto:

Código C#:
Ver original
  1. protected void Page_Load(object sender, EventArgs e)
  2.     {
  3.         if (!IsPostBack)
  4.         {
  5.             this.repeaterImagenes.DataSource = this.ImprimirProductos();
  6.             this.repeaterImagenes.DataBind();
  7.         }
  8.     }
  9.  
  10.     public List<String> ImprimirProductos()
  11.     {
  12.         List<String> misProductos = new List<string>();
  13.  
  14.         misProductos.Add("asterix.png");
  15.         misProductos.Add("quienes.jpg");
  16.         misProductos.Add("productos.gif");
  17.  
  18.         return misProductos;
  19.     }

Y en ASP:
Código ASP:
Ver original
  1. <asp:Panel ID="Panel4" CssClass="listadoProductos" runat="server">
  2.             <asp:Repeater ID="repeaterImagenes" runat="server">            
  3.               <ItemTemplate>
  4.                 <asp:Panel ID="Panel4" CssClass="producto" runat="server">
  5.                     <asp:HyperLink ID="HyperLink1" NavigateUrl="~/img/<%# Container.DataItem %>" runat="server">
  6.                         <asp:Image ID="Image1" ImageUrl="~/img/<%# Container.DataItem %>" runat="server" />                
  7.                     </asp:HyperLink>  
  8.                 </asp:Panel>      
  9.               </ItemTemplate>        
  10.             </asp:Repeater>
  11.         </asp:Panel>

Que me falta?
  #2 (permalink)  
Antiguo 23/12/2010, 14:46
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Repeater con DataSource (una List de C#)

Hola mayid, prueba intentado ponerle asi :
Cita:
<asp:Panel ID="Panel4" CssClass="listadoProductos" runat="server"> <asp:Repeater ID="repeaterImagenes" runat="server"> <ItemTemplate> <asp:Panel ID="Panel4" CssClass="producto" runat="server"> <asp:HyperLink ID="HyperLink1" NavigateUrl="~/img/<%# Container.DataItem %>" runat="server"> <asp:Image ID="Image1" ImageUrl="~/img/'<%# Container.DataItem %>'" runat="server" /> </asp:HyperLink> </asp:Panel> </ItemTemplate> </asp:Repeater> </asp:Panel>
insertandole ' ' y me cuentas ;)
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 23/12/2010, 14:57
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Repeater con DataSource (una List de C#)

Gracias. Pero probé con las comillas y no anda:

Código ASP:
Ver original
  1. ImageUrl="~/img/'<%# Container.DataItem %>'"
  #4 (permalink)  
Antiguo 23/12/2010, 15:05
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Repeater con DataSource (una List de C#)

me parece raro porque yo tambien tenia eso problemas y era por el orden de los ' con los ", algunos me identificaban asi de esta manera :
Cita:
<asp:Image ID="Image5" runat="server" Height="126px" Width="134px"
ImageUrl='<%# Eval("cod_pro","img/productos/Multifuncionales/{0}"+"_p.jpg") %>'/>
sera cuestion de que pruebes cambiandoles " '
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 23/12/2010, 15:11
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Repeater con DataSource (una List de C#)

Me parece que en tu caso el problema era de comillas porque lo que va en Eval también usa comillas (dobles). Pero en mi caso, no uso comillas. Igual probé y esto no marcha:

Código ASP:
Ver original
  1. ImageUrl='~/img/<%# Container.DataItem %>'

No se que signifique Container.DataItem pero en el ejemplo que cité al parecer les funciona:
http://msdn.microsoft.com/es-es/libr...atasource.aspx

<%# Container.DataItem %>
  #6 (permalink)  
Antiguo 23/12/2010, 15:22
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Repeater con DataSource (una List de C#)

mmm haber... dejame crear un proyecto de cero y pruebo tu code, cosa que veo de cerca la funcionalidad y te respondo luego.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 23/12/2010, 15:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Repeater con DataSource (una List de C#)

Estuve probando el codigo de ejemplo que hay en el enlace y funciona ok. No se que sea. Quizás alguna de mis directivas da problemas?

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="True" CodeFile="Productos.aspx.cs" Inherits="Productos" %>
  #8 (permalink)  
Antiguo 23/12/2010, 15:38
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Repeater con DataSource (una List de C#)

aun vas a estar conectada verdad? voy a tratar de hacerlo a mi manera xq kieres imprimir imagenes en lista. voy a kedarme hasta las 5 para ver tu problema.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 23/12/2010, 15:59
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Repeater con DataSource (una List de C#)

Gracias por tu disposición!

Si, quiero imprimir una imagenes pero no estoy usando listas (ul) sino solo divs. La cuestión es que estando a un paso de aprender a usar el repeater me encuentro con este problema. Aunque es un problema de origen de datos mas bien, no?

Que hora es en Perú? En Argentina la 7pm
  #10 (permalink)  
Antiguo 23/12/2010, 16:06
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Repeater con DataSource (una List de C#)

en peru son 2 horas menos que AR, descuida llegando a mi casa voy y lo analizo xq me sale el mismo resultado que a vos. Aparte ando acostumbrado a la hora de AR porque tengo familiares por alla. Una consulta es necesario que muestres las imagenes con repeater?. Ahora salgo del trabajo y apenas llego me conecto para ayudarte mayid. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #11 (permalink)  
Antiguo 23/12/2010, 16:11
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Repeater con DataSource (una List de C#)

Mira, no es necesario para nada que muestre las imagenes con repeater. Solo quiero aprender a usar esto en combinación con C#, porque en un futuro las imagenes pueden surgir de una base de datos.

Si es por acabar, hago todo en ASP y listo, escribiendo varios controles de imagen:
<asp:Image ID="Image1" ImageUrl='~/img/<%# Container.DataItem %>' runat="server" />

Aunque... me gustaría ponerles un enlace alrededor y un div también ( a cada una ) .... por eso todavía prefiero un repeater.

Saludos!
  #12 (permalink)  
Antiguo 23/12/2010, 16:16
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Repeater con DataSource (una List de C#)

Acabo de probar esto fuera del atributo ImageUrl y funciona:

<%# Container.DataItem %>

Es decir que el conflicto efectivamente tiene que ver con intentar imprimir el item dentro de un atributo.

EDITADO: Ya funciona! El conflicto estaba con la ruta relativa que pretendia concatenar. Lo que hice fue incluirla con C#. Y así queda:

Código ASP:
Ver original
  1. misProductos.Add("~/img/frasco1.jpg");
  2. .....
  3.  <asp:Image ID="Image1" ImageUrl="<%# Container.DataItem %>" runat="server" />

Muchas gracias por tu ayuda!
  #13 (permalink)  
Antiguo 23/12/2010, 17:57
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Repeater con DataSource (una List de C#)

Ah que bueno! si tienes razon por el futuro uso eso sirve ! cuidate mayid y feliz navidad! ;). Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: datasource, list
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 04:15.