Compartir a través de


Sintaxis declarativa del control de servidor HtmlAnchor

Actualización: noviembre 2007

Crea un control de servidor que se asigna al elemento HTML <a> y permite crear un vínculo a otra página Web.

<a 
    EnableViewState="False|True" 
    Href="string" 
    Id="string"
    Title="string"
    Visible="False|True"
    OnDataBinding="OnDataBinding event handler"
    OnDisposed="OnDisposed"
    OnInit="OnInit event handler"
    OnLoad="OnLoad event handler"
    OnPreRender="OnPreRender event handler"
    OnServerClick="OnServerClick event handler"
    OnUnload="OnUnload event handler"
    runat="server"
>
linkText
</a>

Comentarios

Utilice el control HtmlAnchor para controlar mediante programación un elemento HTML <a>. El elemento HTML <a> permite crear un hipervínculo para desplazarse a otra ubicación de la página o a otra página Web. El control HtmlAnchor debe tener un formato correcto con etiquetas de apertura y de cierre. Para especificar el título del control se coloca el texto entre las etiquetas de apertura y de cierre. Este control de servidor se utiliza, por lo general, para modificar dinámicamente los atributos y propiedades del elemento <a>, mostrar los hipervínculos de un origen de datos y controlar los eventos para generar dinámicamente controles HtmlAnchor.

Se puede especificar la ubicación donde se va a mostrar la nueva página Web utilizando la propiedad Target. Los valores de Target deben empezar por una letra comprendida entre la a y la z (sin distinción entre mayúsculas y minúsculas), salvo los siguientes valores especiales que empiezan por un carácter de subrayado: _blank, _self, _parent y _top.

La dirección URL a la que se desea vincular el control HtmlAnchor se puede generar dinámicamente. Para generar dinámicamente la propiedad HRef, declare un control HtmlAnchor en un documento HTML. Por ejemplo:

<a id="anchor1" runat="server"></a>
<a id="anchor1" runat="server"></a>

Nota

No olvide incrustar el control HtmlAnchor entre las etiquetas de apertura y de cierre de un control HtmlForm.

A continuación, escriba un controlador de eventos que asigne una dirección URL a la propiedad HRef del control HtmlControl.

Si bien el control HtmlAnchor no se puede enlazar directamente a un origen de datos, es posible generar hipervínculos a partir de los valores de un campo de un origen de datos. En primer lugar, enlace el origen de datos a un control de lista; por ejemplo, Repeater. A continuación, declare un control HtmlAnchor dentro del control de lista. Por último, agregue código en línea para el valor de la propiedad HRef que utiliza el método Eval de la clase DataBinder para especificar el campo que se va a utilizar.

Ejemplo

En el siguiente ejemplo se muestra cómo asociar dinámicamente una dirección URL a un control HtmlAnchor cuando se produce el evento Page_Load.

Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    anchor1.HRef = "https://www.microsoft.com"
End Sub
void Page_Load(object sender, EventArgs e)
{
    anchor1.HRef = "https://www.microsoft.com";
}

En el ejemplo siguiente se muestra cómo incluir un control HtmlAnchor en un control Repeater. Los datos se enlazan al control Repeater mientras el control HtmlAnchor se coloca en la plantilla ItemTemplate que muestra el campo especificado del origen de datos como un hipervínculo.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HtmlAnchor Control</title>
</head>

<script runat="server">
   Sub Page_Load(sender As Object, e As EventArgs)
      Dim dt As New DataTable()
      Dim dr As DataRow
      dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
      dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
      dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))
      dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
      dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
      Dim i As Integer
      For i = 0 To 8
         dr = dt.NewRow()
         dr(0) = i
         dr(1) = "Item " + i.ToString()
         dr(2) = DateTime.Now
         If i Mod 2 <> 0 Then
            dr(3) = True
         Else
            dr(3) = False
         End If
         dr(4) = 1.23 *(i + 1)
         dt.Rows.Add(dr)
      Next i
      MyRepeater.DataSource = New DataView(dt)
      MyRepeater.DataBind()
   End Sub
</script>

<body>
   <h3>Data Binding with the HtmlAnchor</h3>

   <br />
   <form id="Form1" runat="server">
      <asp:Repeater id="MyRepeater" runat="server">
         <ItemTemplate>
            Link for
            <a id="A1" href='<%# DataBinder.Eval(Container, _
                         "DataItem.StringValue", _
                         "detailspage.aspx?id={0}") %>' 
               runat="server">
               <%# DataBinder.Eval(Container, "DataItem.StringValue") %>
            </a>
         </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HtmlAnchor Control</title>
</head>
<script runat="server">
   void Page_Load(Object sender, EventArgs e) 
   {
      DataTable dt = new DataTable();
      DataRow dr;
      dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
      dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
      dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
      dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
      dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
      for (int i = 0; i < 9; i++) 
      {
         dr = dt.NewRow();
         dr[0] = i;
         dr[1] = "Item " + i.ToString();
         dr[2] = DateTime.Now;
         dr[3] = (i % 2 != 0) ? true : false;
         dr[4] = 1.23 * (i+1);
         dt.Rows.Add(dr);
      }
      MyRepeater.DataSource=new DataView(dt);
      MyRepeater.DataBind();
   }
</script>

<body>
   <h3>Data Binding with the HtmlAnchor</h3>
   <br />
   <form id="Form1" runat="server">
      <asp:Repeater id="MyRepeater" runat="server">
         <ItemTemplate>
            Link for
            <a id="A1" href='<%# DataBinder.Eval(Container,
                         "DataItem.StringValue",
                         "detailspage.aspx?id={0}") %>' 
               runat="server">
               <%# DataBinder.Eval(Container, "DataItem.StringValue") %>
            </a>
            <br />
         </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>

Vea también

Referencia

HtmlAnchor

Otros recursos

Controles de servidor HTML