asp.net HyperLinkField não tem nenhuma propriedade ToolTip (texto Alt)
Pergunta
Eu gostaria que houvesse um campo de descrição no HyperLinkField como há um em hiperlink. Estou criando um HyperLinkField por código antes de se ligar a minha fonte de dados:
HyperLinkField hl = new HyperLinkField();
hl.DataNavigateUrlFields = new string[] { "col" };
hl.DataNavigateUrlFormatString = "{0}";
hl.DataTextField = "Foo";
Existe alguma maneira de também definir um valor a algo que tornará como uma dica (ou texto alt)? Qualquer ajuda será apreciada.
Solução
Isso é correto, não há nenhuma propriedade de texto dica / alt em um HyperlinkField . Para contornar esta lacuna, você precisa usar um campo de modelo e adicionar um controle regular de Hyperlink.
<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>
No entanto, fazer isso em um programático requer muito trabalho. Você precisa criar sua própria classe que implementa a ITemplate interface. Aqui está um tutorial sobre isso.
Outras dicas
Sua exigência pode ser accompished em si <asp:HyperlinkField>
adicionando dica para essa célula específica no evento RowDataBound
de um GridView
. Após a ligação do GridView a sua fonte de dados que você pode fazer isso em um evento RowDataBound
da seguinte forma:
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].ToolTip = "Your tooltip text";
}
Apesar de ter aceite uma outra resposta, a minha resposta pode ser útil para alguns outros usuários!