Syntaxe déclarative du contrôle serveur HtmlAnchor
Crée un contrôle côté serveur mappé à l'élément HTML <a> et permet de créer un lien vers une autre page 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>
Notes
Utilisez le contrôle HtmlAnchor pour contrôler par programme un élément HTML <a>. L'élément HTML <a> permet de créer un lien hypertexte grâce auquel vous pouvez accéder à un autre emplacement de la page ou à une autre page Web. Le contrôle HtmlAnchor doit être correctement formé avec une balise d'ouverture et une balise de fermeture. Vous pouvez spécifier la légende du contrôle en plaçant du texte entre les balises d'ouverture et de fermeture. Ce contrôle serveur est généralement utilisé pour modifier dynamiquement les attributs et propriétés de l'élément <a>, afficher des liens hypertexte d'une source de données et contrôler des événements afin de générer des contrôles HtmlAnchor de façon dynamique.
Vous pouvez spécifier l'emplacement où la nouvelle page Web doit être affichée à l'aide de la propriété Target. Les valeurs Target doivent commencer par une lettre comprise entre a et z (sans respect de la casse), à l'exception des valeurs spéciales suivantes qui commencent par un trait de soulignement : _blank, _self, _parent et _top.
Vous pouvez générer dynamiquement l'URL à laquelle vous souhaitez lier le contrôle HtmlAnchor. Pour générer la propriété HRef de façon dynamique, déclarez un contrôle HtmlAnchor dans un document HTML. Par exemple :
<a id="anchor1" runat="server"></a>
<a id="anchor1" runat="server"></a>
Remarque |
---|
Veillez à incorporer le contrôle HtmlAnchor entre les balises d'ouverture et de fermeture d'un contrôle HtmlForm. |
Ensuite, écrivez un gestionnaire d'événements qui assigne une URL à la propriété HRef du contrôle HtmlControl.
Bien que le contrôle HtmlAnchor ne prenne pas directement en charge une liaison à une source de données, il est possible de générer des liens hypertexte à partir des valeurs d'un champ d'une source de données. Commencez par lier la source de données à un contrôle de liste, par exemple Repeater. Ensuite déclarez un contrôle HtmlAnchor à l'intérieur du contrôle de liste. Enfin, ajoutez du code incorporé pour la valeur de la propriété HRef qui utilise la méthode Eval de la classe DataBinder pour spécifier le champ à utiliser
Exemple
L'exemple suivant montre comment associer dynamiquement une URL à un contrôle HtmlAnchor lorsque l'événement Page_Load se produit.
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";
}
L'exemple suivant montre comment inclure un contrôle HtmlAnchor dans un contrôle Repeater. Les données sont liées au contrôle Repeater tandis qu'un contrôle HtmlAnchor est placé dans le modèle ItemTemplate qui affiche le champ spécifié de la source de données en tant que lien hypertexte.
<%@ 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>