HtmlAnchor 서버 컨트롤 선언 구문

업데이트: 2007년 11월

<a> HTML 요소에 매핑되는 서버측 컨트롤을 만들어 다른 웹 페이지에 연결할 수 있도록 합니다.

<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 컨트롤을 사용하면 <a> HTML 요소를 프로그래밍 방식으로 제어할 수 있습니다. <a> HTML 요소를 사용하면 특정 페이지의 다른 위치 또는 다른 웹 페이지로 이동하는 데 사용할 수 있는 하이퍼링크를 만들 수 있습니다. HtmlAnchor 컨트롤은 여는 태그와 닫는 태그가 모두 포함된 올바른 형식이어야 합니다. 여는 태그와 닫는 태그 사이에 텍스트를 넣으면 컨트롤의 캡션을 지정할 수 있습니다. 일반적으로 이 서버 컨트롤은 <a> 요소의 특성과 속성을 동적으로 수정하고, 데이터 소스의 하이퍼링크를 표시하고, HtmlAnchor 컨트롤을 동적으로 생성하도록 이벤트를 제어하는 데 사용됩니다.

Target 속성을 사용하면 새 웹 페이지를 표시할 위치를 지정할 수 있습니다. Target 값은 _blank, _self, _parent, _top 등과 같이 밑줄로 시작하는 특수 값을 제외하고 a에서 z까지의 문자로 시작해야 합니다. 이때 대/소문자를 구분하지 않습니다.

HtmlAnchor 컨트롤을 연결할 URL을 동적으로 생성할 수 있습니다. HRef 속성을 동적으로 생성하려면 HTML 문서에서 HtmlAnchor 컨트롤을 선언합니다. 예를 들면 다음과 같습니다.

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

참고

HtmlAnchor 컨트롤은 HtmlForm 컨트롤의 여는 태그와 닫는 태그 사이에 넣어야 합니다.

그런 다음 HtmlControlHRef 속성에 URL을 할당하는 이벤트 처리기를 작성합니다.

HtmlAnchor 컨트롤은 데이터 소스에 대한 바인딩을 직접 지원하지 않지만 데이터 소스 필드의 값에서 하이퍼링크를 생성할 수는 있습니다. 먼저 데이터 소스를 Repeater 같은 목록 컨트롤에 바인딩합니다. 그런 다음 목록 컨트롤 내에 HtmlAnchor 컨트롤을 선언합니다. 마지막으로, 사용할 필드를 지정하기 위해 DataBinder 클래스의 Eval 메서드를 사용하는 HRef 속성의 값에 대한 인라인 코드를 추가합니다.

예제

다음 예제에서는 Page_Load 이벤트가 발생할 경우 HtmlAnchor 컨트롤에 동적으로 URL을 연결하는 방법을 보여 줍니다.

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";
}

다음 예제에서는 Repeater 컨트롤에 HtmlAnchor 컨트롤을 포함하는 방법을 보여 줍니다. 이때 데이터가 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 서버 컨트롤