次の方法で共有


HyperLinkColumn クラス

列内の各項目のハイパーリンクを格納する DataGrid コントロールの列型。

この型のすべてのメンバの一覧については、HyperLinkColumn メンバ を参照してください。

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

Public Class HyperLinkColumn
   Inherits DataGridColumn
[C#]
public class HyperLinkColumn : DataGridColumn
[C++]
public __gc class HyperLinkColumn : public DataGridColumn
[JScript]
public class HyperLinkColumn extends DataGridColumn

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

DataGrid コントロールの HyperLinkColumn 列型を使用して、 DataGrid の各行にハイパーリンクを作成します。 Text プロパティを設定して、ハイパーリンクのキャプション テキストを指定します。ハイパーリンクがクリックされたときのリンク先の URL を指定するには、 href プロパティを設定します。

メモ    Text プロパティと href プロパティを設定すると、列内のすべてのハイパーリンクが同じキャプションと URL を共有します。

Text プロパティと href プロパティを設定する代わりに、 HyperLinkColumn 内のハイパーリンクのテキスト キャプションと URL をデータ ソースのフィールドに連結することもできます。これによって、列内のハイパーリンクごとに異なるキャプションを表示したり、異なる URL を指定したりできます。

DataTextField プロパティを使用して、列内のハイパーリンクのテキスト キャプションに連結するデータ ソースのフィールドを指定します。

メモ    DataTextField プロパティと Text プロパティの両方を同時には設定できません。両方のプロパティが設定されている場合は、 DataTextField プロパティが優先されます。

DatahrefField プロパティを設定して、ハイパーリンクの URL に連結するフィールドを指定します。

メモ    DatahrefField プロパティと href プロパティの両方を同時には設定できません。両方のプロパティが設定されている場合は、 DatahrefField プロパティが優先されます。

Target プロパティを使用すると、ハイパーリンクがクリックされたときのリンク先の Web ページの内容を表示するウィンドウまたはフレームを指定できます。

データ連結を使用する場合は、 DataTextFormatString プロパティと DatahrefFormatString プロパティをそれぞれ設定して、ハイパーリンクのテキスト キャプションと URL を書式設定できます。

注意   テキストは、 HyperLinkColumn に表示されるまで HTML エンコードされません。そのため、テキストの HTML タグ内にスクリプトを埋め込むことが可能となっています。この列の値がユーザー入力による値の場合は、セキュリティ上の危険性を低減するために、必ず値を検証するようにしてください。

使用例

[Visual Basic, C#] 別個のページにリンクする HyperLinkColumn を作成する方法の例を次に示します。

 
<%@ 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>

[C#] 
<%@ 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>

[Visual Basic, C#] 前述の例で選択された項目を表示する対応する例を次に示します。

 
<%@ 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>


[C#] 
<%@ 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>

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Web.UI.WebControls

プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Web (System.Web.dll 内)

参照

HyperLinkColumn メンバ | System.Web.UI.WebControls 名前空間 | DataGridColumn | DataGridColumnCollection | DataGrid | HyperLink | BoundColumn | ButtonColumn | EditCommandColumn | TemplateColumn