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.

Foi útil?

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!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top