asp.net HyperLinkField n'a pas de propriété ToolTip (Alt text)
Question
J'aimerais qu'il y ait un champ d'info-bulle dans HyperLinkField comme il en existe un dans HyperLink. Je crée un HyperLinkField à l'aide d'un code avant de me connecter à ma source de données:
HyperLinkField hl = new HyperLinkField();
hl.DataNavigateUrlFields = new string[] { "col" };
hl.DataNavigateUrlFormatString = "{0}";
hl.DataTextField = "Foo";
Existe-t-il un moyen de définir également une valeur qui affichera une infobulle (ou un texte alternatif)? Toute aide sera appréciée.
La solution
C'est exact, il n'y a pas de propriété de texte tooltip / alt dans un HyperlinkField . Pour remédier à cette lacune, vous devez utiliser un champ de modèle et ajouter un contrôle Hyperlien standard.
<asp:TemplateField HeaderText="Href">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#
Eval("Href") %>' Text='<%# Eval("Href") %>' ToolTip='<%# Eval("Text") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
Cependant, cela dans un programme nécessite beaucoup de travail. Vous devez créer votre propre classe qui implémente le ITemplate . Voici un didacticiel sur ce sujet.
Autres conseils
Votre besoin peut être accompagné de <asp:HyperlinkField>
lui-même en ajoutant une info-bulle pour cette cellule spécifique dans le cas RowDataBound
d'un <<>. Après avoir lié le GridView à votre source de données, vous pouvez le faire dans un événement GridView
comme suit:
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].ToolTip = "Your tooltip text";
}
Bien que vous ayez accepté une autre réponse, ma réponse pourrait être utile à d'autres utilisateurs!