Tratando de incrustar un DataItem dentro de un asp: propiedad ImageUrl de control de imagen
-
19-09-2019 - |
Pregunta
Tengo el siguiente control de imagen dentro de un repetidor. Estoy tratando de obtener el nombre de usuario para hacer en el medio ~ / profilepics / y .jpg pero me da el siguiente resultado representado
/profilepics/%3C%25#DataBinder.Eval (Container.DataItem,% 20% 22usernameFrom% 22)% 20% 25% 3E.jpg
Aquí es el margen de beneficio
<asp:Image ID="Image1" runat="server" ImageUrl='~/profilepics/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />
También he intentado lo mismo pero con comillas dobles y obtener el mismo resultado.
<asp:Image ID="Image1" runat="server" ImageUrl="~/profilepics/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg" />
Solución
No va a funcionar de esta manera. La imagen WebControl no tomará tales marcas. El método común es usar evento ItemDataBound para asignar la fuente de imagen para cada control de imagen dentro de un elemento de repetidor.
Si desea utilizar esas marcas, no utilice WebControl, intente lo siguiente:
<img src='<%ResolveClientUrl("~/profilepics")%>/<%#DataBinder.Eval(Container.DataItem, "username") %>.jpg' />
Renuncia: No he probado el código anterior exacto pero el concepto debería trabajar
.Otros consejos
No se puede utilizar la sintaxis de enlace de datos dentro de un control de servidor. ¿Has probado con una etiqueta HTML img formato en lugar?
<img src='/profilepics/<%#Eval("username") %>.jpg' />