Поделиться через


Декларативный синтаксис серверного элемента управления HtmlAnchor

Создает серверный элемент управления, сопоставляемый c HTML-элементом <a> и позволяющий ссылаться на другую веб-страницу.

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

Заметки

Элемент управления HtmlAnchor используется для программного управления HTML-элементом <a>. С помощью HTML-элемента <a> можно создать гиперссылку, позволяющую перейти в другое место страницы или на другую веб-страницу. Элемент управления HtmlAnchor должен быть правильно иметь правильный формат и иметь открывающий и закрывающий теги. Для данного элемента управления можно указать заголовок, поместив текст между открывающим и закрывающим тегами. Этот серверный элемент управления обычно используется для динамического изменения атрибутов и свойств элемента <a>, отображения гиперссылок из источника данных и управления событиями, предназначенными для динамического создания элементов управления HtmlAnchor.

С помощью свойства Target можно задать расположение для отображения новой веб-страницы. Значения Target должны начинаться с буквы в диапазоне от a до z (без учета регистра), за исключением следующих специальных значений, начинающихся с символа подчеркивания: _blank, _self, _parent и _top.

URL-адрес, с которым должен быть связан элемент управления HtmlAnchor, можно создать динамически. Для динамического создания свойства HRef в документе HTML объявите элемент управления HtmlAnchor. Пример:

<a id="anchor1" runat="server"></a>
<a id="anchor1" runat="server"></a>
ПримечаниеПримечание

Не забудьте включить элемент управления HtmlAnchor внутри открывающего и закрывающего тегов элемента управления HtmlForm.

После этого напишите обработчик событий, назначающий URL-адрес свойству HRef элемента HtmlControl.

Хотя элемент управления HtmlAnchor непосредственно не поддерживает связывание с источником данных, из значений поля источника данных можно создать гиперссылки. Сначала привяжите источник данных к элементу управления списком, например, Repeater. Затем внутри элемента управления списком объявите элемент управления HtmlAnchor. Наконец, добавьте встроенный код для значения свойства HRef, которое использует метод Evalкласса DataBinder для задания используемого поля

Пример

В следующем примере показан способ динамического связывания URL-адреса с элементом управления HtmlAnchor при возникновении события 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";
}

Далее приводится пример включения элемента управления HtmlAnchor в элемент управления Repeater. Данные привязываются к элементу управления Repeater, в то время как элемент управления HtmlAnchor размещается в ItemTemplate, который отображает указанное поле источника данных в виде гиперссылки.

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

См. также

Ссылки

HtmlAnchor

Другие ресурсы

Серверные HTML-элементы управления