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>
注意事項 |
---|
記得在 HtmlForm 控制項的開頭和結尾標記之內嵌入 HtmlAnchor 控制項。 |
接下來,撰寫一個指派 URL 到 HtmlControl 控制項之 HRef 屬性的事件處理常式。
雖然 HtmlAnchor 控制項不直接支援資料來源的繫結,但可能可以從資料來源中的欄位值產生超連結。 首先,將資料來源繫結到清單控制項,例如 Repeater。 然後,在清單控制項內宣告 HtmlAnchor 控制項。 最後,為使用 DataBinder 類別之 Eval 方法的 HRef 屬性值加入內嵌 (Inline) 程式碼,以指定要使用的欄位。
範例
下列範例將示範當 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";
}
下列範例將示範如何在 Repeater 控制項中包含 HtmlAnchor 控制項。 當 HtmlAnchor 控制項放置在以超連結顯示資料來源中指定欄位的 ItemTemplate 時,資料會繫結到 Repeater 控制項。
<%@ 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>