J'essaie de vérifier une valeur de chaîne dans un répéteur, et si elle a une valeur, écrivez un lien, mais ne semble pas le faire fonctionner. S'il existe une valeur dans myUrl, je souhaite afficher le lien.
<%if( %> <%#Eval("myURL").ToString().Length > 0 %>
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>">my link</a>
<% } %>
Quelqu'un peut-il aider s'il vous plait?
essayez ce code !!!
<%#Eval("myURL").ToString().Length > 0 ?
"<a title='myTitle' target='_blank' href='<%# Eval("myURL") %>'>my link</a>":""%>
Personnellement, je déteste utiliser une logique conditionnelle comme celle-ci dans la page.
Je pense que deux options sont meilleures. Vous pouvez avoir un contrôle d’hyperlien dans le répéteur et définir la visibilité en fonction du paramètre myURL.
visibility='<% #Eval("myURL").ToString().Length > 0 %>'
OU ce que vous pouvez faire est d’avoir une méthode sur votre code derrière que vous rappelez avec le paramètre "myURL".
Par exemple.
public string CreateURL(string myURL){
if(!string.IsNullOrEmpty(myURL)){
return "<a ... ";
}
return string.Empty;
}
Et appelez ASPX
<%# CreateURL(Eval("myURL").ToString()) %>
NB: il s’agit d’un code non testé mais c’est ainsi que je fais habituellement ce genre de chose.
Je voudrais utiliser le String.Format et inclure le HTML en tant que partie de la chaîne. Certes, ce n'est pas le code le plus ordonné jamais écrit, mais à mon avis c'est la meilleure option:
Par exemple, ci-dessous générera une balise d'ancrage si la propriété Url existe, sinon elle générera une étendue.
<%# string.Format(Eval("Url") != null ? "<a href=\"{0}\">{1}</a>" : "<span>{1}</span>", Eval("Url"), Eval("Text")) %>">
Essayez d’ajouter un runat="server"
puis d’ajouter un bloc de script pour la (nouvelle) propriété visible côté serveur:
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>" runat="server" visible='<%#Eval("myURL").ToString().Length > 0 %>'>my link</a>
Vous pouvez également appeler votre fonction publique à l'intérieur du code derrière le fichier:
<%# MyFunction(Eval("myURL").ToString().Length) %>