Me estuve peleando un rato con esto, hasta que encontré la solución.

Tengo un DataList, y dentro de él aparecen imágenes cuya ruta se forma a partir de un valor devuelto por la base de datos.

Mi primera idea fue tratar de unir la ruta con el Eval, de esta forma:

  1. <asp:Image ImageUrl='~/postales/thumbs/<%# Eval("archivoThumbnail") %>' BorderStyle="None" CssClass="bordeImagenGris" Height="80" Width="80" ID="Image1" runat="server" />

Pero dado que el Eval aparece dentro de las comillas simples de ImageUrl, el valor es pasado tal cual, así que la imagen nunca es encontrada.

Para resolverlo, tienes que usar la función String.Format, de esta manera:

  1. <asp:Image ImageUrl=<%# String.Format("~/postales/thumbs/{0}",Eval("archivoThumbnail"))%> BorderStyle="None" CssClass="bordeImagenGris" Height="80" Width="80" ID="Image1" runat="server" />

Sobre String.Format

La función String.Format es un concatenador (valga el término) de cadenas de texto. Toma n parámetros. Cada parámetro se define por un número encerrado entre llaves ({ y }), y a cada parámetro existente debes darle un valor.

Como siempre, es más fácil entenderlo con un ejemplo:

  1. String.Format("Roger {0} es el mejor {1} del {2}", "Federer", "tenista", "mundo")
  2. 'Esto regresará el siguiente texto:
  3. 'Roger Federer es el mejor tenista del mundo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


+ 5 = seis