次の方法で共有


HtmlAnchor サーバー コントロール宣言構文

<a> HTML 要素に割り当てるサーバー側のコントロールを作成し、別の 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>

解説

HtmlAnchor コントロールを使用して、プログラムで <a> HTML 要素を制御します。 <a> HTML 要素で、同じページの別の場所または別の Web ページに移動するハイパーリンクを作成できます。 HtmlAnchor コントロールは、開始タグと終了タグで正しく記述されている必要があります。 開始タグと終了タグの間にテキストを挿入することによって、コントロールのキャプションを指定できます。 このサーバー コントロールは、<a> 要素の属性とプロパティを動的に変更する、データ ソースを使ってハイパーリンクを表示する、または HtmlAnchor コントロールを動的に生成するイベントを制御するために、一般的に使用されます。

Target プロパティを使用することにより、新しい Web ページを表示する位置を指定できます。 Target 値は、a から z までの範囲の文字で始まる必要があります (大文字と小文字は区別されません)。ただし、アンダースコアで始まる特別な値 _blank、_self、_parent、および _top を除きます。

HtmlAnchor コントロールでリンクする URL は、動的に生成できます。 HRef プロパティを動的に生成するには、HTML ドキュメントで HtmlAnchor コントロールを宣言します。 以下に例を示します。

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

HtmlAnchor コントロールは、HtmlForm コントロールの開始タグと終了タグの内側に配置してください。

次に、URL を HtmlControlHRef プロパティに割り当てるイベント ハンドラーを作成します。

HtmlAnchor コントロールは、データ ソースへのバインディングを直接サポートしませんが、データ ソースのフィールドの値からハイパーリンクを生成できます。 まず、データ ソースを Repeater などのリスト コントロールにバインドします。 次に、リスト コントロールの内側で HtmlAnchor コントロールを宣言します。 最後に、HRef プロパティの値を設定するためのインライン コードを追加し、DataBinder クラスの Eval メソッドを使ってフィールドを指定します。

使用例

Page_Load イベントが発生したときに、URL を HtmlAnchor コントロールに動的に関連付ける例を示します。

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 サーバー コントロール