HyperLinkColumn 类

DataGrid 控件的列类型,它包含列中每一项的超链接。

**命名空间:**System.Web.UI.WebControls
**程序集:**System.Web(在 system.web.dll 中)

语法

声明
Public Class HyperLinkColumn
    Inherits DataGridColumn
用法
Dim instance As HyperLinkColumn
public class HyperLinkColumn : DataGridColumn
public ref class HyperLinkColumn : public DataGridColumn
public class HyperLinkColumn extends DataGridColumn
public class HyperLinkColumn extends DataGridColumn

备注

使用 DataGrid 控件中的 HyperLinkColumn 列类型为 DataGrid 中的每行创建超链接。设置 Text 属性以指定超链接的标题文本。若要指定当单击超链接时链接到的 URL,请设置 href 属性。

提示

如果设置了 Texthref 属性,则列中的所有超链接将共享同一标题和 URL。

还可以将 HyperLinkColumn 中的超链接的文本标题和 URL 绑定到数据源中的字段,而不是设置 Texthref 属性。这使您得以为列中的每个超链接显示不同的标题和指定不同的 URL。

使用 DataTextField 属性指定数据源中的字段以绑定到列中超链接的文本标题。

提示

不能同时设置 DataTextFieldText 属性。如果同时设置了这两个属性,则 DataTextField 属性优先。

通过设置 DatahrefField 属性指定要绑定到超链接的 URL 的字段。

提示

不能同时设置 DatahrefFieldhref 属性。如果同时设置了这两个属性,则 DatahrefField 属性优先。

Target 属性使您得以指定窗口或框架以显示单击超链接时链接到的网页内容。

当使用数据绑定时,可以通过设置 DataTextFormatString 和 DatahrefFormatString 属性分别格式化超链接的文本标题和 URL。

警告

此控件可用来显示用户输入,而该输入可能包含恶意的客户端脚本。在您的应用程序中显示从客户端发送来的信息之前,先检查这些信息中是否有可执行脚本、SQL 语句或其他代码。可以在将输入文本显示在控件中之前使用验证控件验证用户输入。ASP.NET 提供了输入请求验证功能,可以阻止用户输入中的脚本和 HTML 代码。有关更多信息,请参见 保证标准控件的安全如何:通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入在 ASP.NET 网页中验证用户输入

示例

下面的示例说明如何创建一个链接到单独一页的 HyperLinkColumn

提示

以下代码示例使用单文件代码模型,当它直接复制到代码隐藏文件时可能不能正常工作。此代码示例必须被复制到具有 .aspx 扩展名的空文本文件中。有关 Web 窗体代码模型的更多信息,请参见 ASP.NET 网页代码模型

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>

<head>

   <script runat="server">

      Function CreateDataSource() As ICollection 
      
         Dim dt As DataTable = New DataTable()
         Dim dr As DataRow
         Dim i As Integer

         dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
         dt.Columns.Add(New DataColumn("PriceValue", GetType(Double)))
       
         For i = 0 to 2 
         
            dr = dt.NewRow()

            dr(0) = i
            dr(1) = CDbl(i) * 1.23

            dt.Rows.Add(dr)

         Next i

         Dim dv As DataView = New DataView(dt)
         Return dv

      End Function

      Sub Page_Load(sender As Object, e As EventArgs) 
    
         MyDataGrid.DataSource = CreateDataSource()
         MyDataGrid.DataBind()

      End Sub

   </script>

</head>

<body>

   <form runat="server">

      <h3>HyperLinkColumn Example<h3>

      <asp:DataGrid id="MyDataGrid" 
           BorderColor="black"
           BorderWidth="1"
           GridLines="Both"
           AutoGenerateColumns="false"
           runat="server">

         <HeaderStyle BackColor="#aaaadd"/>

         <Columns>

            <asp:HyperLinkColumn
                 HeaderText="Select an Item"
                 DatahrefField="IntegerValue"
                 DatahrefFormatString="detailspage.aspx?id={0}"
                 DataTextField="PriceValue"
                 DataTextFormatString="{0:c}"
                 Target="_blank"/>
           
         </Columns>

      </asp:DataGrid>

   </form>

</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>

<head>

   <script runat="server">

      ICollection CreateDataSource() 
      {
         DataTable dt = new DataTable();
         DataRow dr;

         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("PriceValue", typeof(Double)));
       
         for (int i = 0; i < 3; i++) 
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = (Double)i * 1.23;

            dt.Rows.Add(dr);
         }

         DataView dv = new DataView(dt);
         return dv;
      }

      void Page_Load(Object sender, EventArgs e) 
      {
         MyDataGrid.DataSource = CreateDataSource();
         MyDataGrid.DataBind();
      }

   </script>

</head>

<body>

   <form runat="server">

      <h3>HyperLinkColumn Example<h3>

      <asp:DataGrid id="MyDataGrid" 
           BorderColor="black"
           BorderWidth="1"
           GridLines="Both"
           AutoGenerateColumns="false"
           runat="server">

         <HeaderStyle BackColor="#aaaadd"/>

         <Columns>

            <asp:HyperLinkColumn
                 HeaderText="Select an Item"
                 DatahrefField="IntegerValue"
                 DatahrefFormatString="detailspage.aspx?id={0}"
                 DataTextField="PriceValue"
                 DataTextFormatString="{0:c}"
                 Target="_blank"/>
           
         </Columns>

      </asp:DataGrid>

   </form>

</body>
</html>

下面的相应示例显示在上一示例中选择的项。

<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>
 
   <script runat="server">
 
      Sub Page_Load(sender As Object, e As EventArgs) 
      
         Label1.Text = "You selected item: " & Request.QueryString("id")
      
      End Sub
 
   </script>
 
</head>
<body>
 
   <h3>Details page for DataGrid</h3>
 
   <asp:Label id="Label1"
        runat="server"/>
 
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
 
   <script runat="server">
 
      void Page_Load(Object sender, EventArgs e) 
      {
         Label1.Text = "You selected item: " + Request.QueryString["id"];
      }
 
   </script>
 
</head>
<body>
 
   <h3>Details page for DataGrid</h3>
 
   <asp:Label id="Label1"
        runat="server"/>
 
</body>
</html>

.NET Framework 安全性

继承层次结构

System.Object
   System.Web.UI.WebControls.DataGridColumn
    System.Web.UI.WebControls.HyperLinkColumn

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

HyperLinkColumn 成员
System.Web.UI.WebControls 命名空间
DataGridColumn 类
DataGridColumnCollection 类
DataGrid 类
HyperLink 类
BoundColumn 类
ButtonColumn 类
EditCommandColumn 类
TemplateColumn

其他资源

保证标准控件的安全
如何:通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入
在 ASP.NET 网页中验证用户输入