2009-06-02 10 views
1

Le code ci-dessous:Pourquoi un simple <% Eval() %> fonctionnera dans IE et Chrome et pas dans Firefox?

<asp:HyperLink ID="Image1_Link" runat="server" 
Text='<% "< img src=" + PhotoGalleryBaseUrl + Eval("image_file_name") + ">" %>'> 
</asp:HyperLink> 
Image Size: 
<asp:Label ID="image_sizeLabel" runat="server" Text='<%# Eval("image_size") %>'> 
</asp:Label><br /> 

Renders comme ça dans Chrome et IE: Right Rendering http://cp.images.s3.amazonaws.com/ForumImages/cp-6-2-2009-4.53.28%20PM-03.png

Et rend comme ça dans Firefox (qui est manifestement erronée): Wrong Rendering http://cp.images.s3.amazonaws.com/ForumImages/cp-6-2-2009-4.55.10%20PM-04.png

EDIT 2: Mettre le signe # devant le <% ne fonctionne pas. Avec le signe #, le rendu est incorrect dans tous les navigateurs.

Répondre

1

Je crois que c'est parce qu'il vous manque une "#" déclaration ici. Essayez-le (ceci n'est pas testé).

Text='<% "< img src= 
    // should be 
    Text='<%# "< img src= 

[modifier]

Pouvez-vous réessayer avec ce code et voir si cela fonctionne?

<asp:HyperLink ID="Image1_Link" runat="server"> 
<%# "<img src='" + PhotoGalleryBaseUrl + Eval("image_file_name") + "' />" %> 
</asp:HyperLink> 
Image Size: 
<asp:Label ID="image_sizeLabel" runat="server" Text='<%# Eval("image_size") %>'> 
</asp:Label><br /> 
+0

Oui. C'était aussi ma première impression, mais le résultat était qu'avec le signe # cela ne fonctionnait dans aucun des navigateurs. Merci. – Geo

2

Avez-vous regardé la source de la page rendue. Si oui, cela génère-t-il la même source?

1

Vous définissez le texte du lien sur une chaîne étrange. Les guillemets ne fonctionnent pas dans la chaîne construite si les noms ont des espaces.

Si vous souhaitez réellement afficher une image dans le lien, utilisez plutôt ImageUrl. Le <% ...%> est envoyé au navigateur. IE et Chrome l'ignorent simplement comme un commentaire.

1

Une autre option est d'essayer:

<asp:HyperLink ID="HyperLink1" runat="server" 
Text='<%# GetImageString(PhotoGalleryBaseUrl + Eval("image_file_name").ToString())%>'> 
</asp:HyperLink> 

(Ne pas oublier la conversion de chaînes sur la Eval)

Où GetImageString() est une méthode publique sur la page:

public string GetImageString(string imageFilePath) 
{ 
return "<img src='" + imageFilePath + "'>"; 
} 
Questions connexes