Condividi tramite


Sintassi dichiarativa per il controllo server HtmlAnchor

Crea un controllo lato server che viene mappato all'elemento HTML <a> e che consente di collegarsi a un'altra pagina 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>

Note

Utilizzare il controllo HtmlAnchor per controllare a livello di codice l'elemento HTML <a> che consente di creare un collegamento ipertestuale per spostarsi in una posizione diversa della pagina o in un'altra pagina Web. Il controllo HtmlAnchor deve avere il formato corretto con tag di apertura e di chiusura. È possibile specificare la didascalia del controllo posizionando il testo tra i tag di apertura e di chiusura. Il controllo server è in genere utilizzato per modificare in modo dinamico gli attributi e le proprietà dell'elemento <a>, visualizzare i collegamenti ipertestuali da un'origine dati e controllare gli eventi per generare i controlli HtmlAnchor in modo dinamico.

È possibile specificare la posizione in cui visualizzare la nuova pagina Web mediante la proprietà Target. È necessario che i valori Target inizino con una lettera compresa nell'intervallo a-z, senza distinzione tra maiuscole e minuscole, fatta eccezione per i seguenti valori speciali che iniziano con un carattere di sottolineatura: _blank, _self, _parent e _top.

È possibile generare in modo dinamico l'URL al quale si desidera collegare il controllo HtmlAnchor. Per generare la proprietà HRef in modo dinamico, dichiarare un controllo Htmlanchor in un documento HTML. Di seguito è riportato un esempio:

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

Ricordarsi di incorporare il controllo HtmlAnchor all'interno dei tag di apertura e di chiusura di un controllo HtmlForm.

Successivamente, programmare un gestore eventi che assegni un URL alla proprietà HRef di HtmlControl.

Sebbene il controllo HtmlAnchor non supporti direttamente l'associazione a un'origine dati, è possibile generare collegamenti ipertestuali dai valori di un campo in un'origine dati. Associare innanzitutto l'origine dati a un controllo elenco, ad esempio Repeater, quindi dichiarare un controllo HtmlAnchor all'interno del controllo elenco. Aggiungere infine il codice inline per il valore della proprietà HRef che utilizza il metodo Eval della classe DataBinder per specificare il campo da utilizzare.

Esempio

Nell'esempio riportato di seguito viene illustrato come associare in modo dinamico un URL a un controllo HtmlAnchor quando si verifica un 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";
}

Nell'esempio riportato di seguito viene illustrato come includere un controllo HtmlAnchor all'interno di un controllo Repeater. I dati sono associati al controllo Repeater mentre il controllo HtmlAnchor viene inserito in ItemTemplateche visualizza il campo specificato nell'origine dati come collegamento ipertestuale.

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

Vedere anche

Riferimenti

HtmlAnchor

Altre risorse

Controlli server HTML