Pregunta

Desearía que hubiera un campo de información sobre herramientas en HyperLinkField ya que hay uno en HyperLink. Estoy creando un HyperLinkField por código antes de vincularlo a mi fuente de datos:

HyperLinkField hl = new HyperLinkField(); 
hl.DataNavigateUrlFields = new string[] { "col" };
hl.DataNavigateUrlFormatString = "{0}";
hl.DataTextField = "Foo";

¿Hay alguna forma de establecer también un valor en algo que se muestre como información sobre herramientas (o texto alternativo)? Cualquier ayuda será apreciada.

¿Fue útil?

Solución

Eso es correcto, no hay información sobre herramientas / texto alternativo en un HyperlinkField . Para evitar esta deficiencia, debe usar un campo de plantilla y agregar un control de hipervínculo regular.

<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>

Sin embargo, hacer esto en forma programática requiere mucho trabajo. Debe crear su propia clase que implemente ITemplate interfaz. Aquí hay un tutorial sobre eso.

Otros consejos

Su requisito se puede cumplir en <asp:HyperlinkField> en sí mismo agregando información sobre herramientas para esa celda específica en RowDataBound evento de un GridView. Después de vincular el GridView a su DataSource, puede hacer esto en un <=> evento de la siguiente manera:

if (e.Row.RowType == DataControlRowType.DataRow)
{
    e.Row.Cells[0].ToolTip = "Your tooltip text";
}

¡Aunque ha aceptado otra respuesta, mi respuesta puede ser útil para otros usuarios!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top