2010-12-15 22 views
3

J'essaie d'afficher une image dans un contrôle ListView en fonction de la valeur d'une propriété de databound. J'ai essayé deux méthodes de faire cela (une à la fois) et les deux ont retourné des erreurs de "L'étiquette de serveur n'est pas bien formée". Considérez le code ci-dessous.Instruction conditionnelle de script en ligne dans un ListView

<ItemTemplate> 
    <div class="left"> 

    <!-- Method 1 --> 
    <img src="media-play-button.png" alt="Play" class="mediaplay noborder" runat="server" visible="<%# Eval("MediaType").ToString() == "video" %>" /> 

    <!-- Method 2 --> 
    <%# if (((MediaLink)Container.DataItem).MediaType == "video") { %> 
    <img src="media-play-button.png" alt="Play" class="mediaplay noborder" /> 
    <%# } %> 

    </div> 
</ItemTemplate> 

Répondre

7

Méthode 1:

Au lieu d'utiliser " pour la valeur d'attribut visible, utilisez ':

<img src="media-play-button.png" alt="Play" class="mediaplay noborder" 
    runat="server" visible='<%# Eval("MediaType").ToString() == "video" %>' /> 

L'utilisation " provoque la chaîne de mettre fin après <%# Eval(.

Méthode 2:

Ne pas utiliser les expressions de liaison (<%#%>) pour les blocs de codage (<%%>):

<% if (((MediaLink)Container.DataItem).MediaType == "video") { %> 
<img src="media-play-button.png" alt="Play" class="mediaplay noborder" /> 
<% } %> 
+1

impressionnant, merci. Je manque toujours un détail banal! – esvendsen