创建一个服务器端控件,该控件映射到 <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 控件链接到的 URL。若要动态生成 HRef 属性,请在 HTML 文档中声明 HtmlAnchor 控件。例如:
Visual Basic? | ![]() |
---|---|
<a id="anchor1" runat="server"></a> |
C#? | ![]() |
---|---|
<a id="anchor1" runat="server"></a> |
![]() |
---|
请记住,将 HtmlAnchor 控件嵌入 |
下一步,编写一个事件处理程序来向
虽然 HtmlAnchor 控件不直接支持绑定到数据源,但可以从数据源中的字段值生成超链接。首先将数据源绑定到列表控件,如
示例
下面的示例演示当 Page_Load 事件发生时,如何动态地将一个 URL 与 HtmlAnchor 控件相关联。
Visual Basic? | ![]() |
---|---|
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) anchor1.HRef = "http://www.microsoft.com" End Sub |
C#? | ![]() |
---|---|
void Page_Load(object sender, EventArgs e) { anchor1.HRef = "http://www.microsoft.com"; } |
下面的示例演示如何在 Repeater 控件中包含 HtmlAnchor 控件。将数据绑定到 Repeater 控件,并将 HtmlAnchor 控件放置在将数据源中的指定字段显示为超链接的
Visual Basic? | ![]() |
---|---|
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <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> <p> <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> </p> </ItemTemplate> </asp:Repeater> </form> </body> </html> |
C#? | ![]() |
---|---|
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <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> <p> <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> <p> </ItemTemplate> </asp:Repeater> </form> </body> </html> |
请参见
