DynamicHyperLink 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
顯示資料表動作的連結,例如編輯、刪除和插入。
public ref class DynamicHyperLink : System::Web::UI::WebControls::HyperLink
[System.Drawing.ToolboxBitmap(typeof(System.Web.DynamicData.DynamicHyperLink), "DynamicHyperLink.bmp")]
public class DynamicHyperLink : System.Web.UI.WebControls.HyperLink
[<System.Drawing.ToolboxBitmap(typeof(System.Web.DynamicData.DynamicHyperLink), "DynamicHyperLink.bmp")>]
type DynamicHyperLink = class
inherit HyperLink
interface IAttributeAccessor
Public Class DynamicHyperLink
Inherits HyperLink
- 繼承
- 屬性
- 實作
範例
有原始程式碼的 Visual Studio 專案隨附於本主題:Scaffolding Dynamic Data。
下列範例示範如何為數據列、集合建立 DynamicHyperLink 控件,以及執行指定的動作。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DynamicDataDynamicHyperlink.aspx.cs" Inherits="DocSamples_DynamicDataDynamicHyperlink" %>
<%@ Register src="~/DynamicData/Content/GridViewPager.ascx" tagname="GridViewPager" tagprefix="asp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Dynamic Hyperlinks</title>
</head>
<body>
<form id="form1" runat="server">
<asp:DynamicDataManager ID="DynamicDataManager1"
runat="server">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
<div>
<h3>Dynamic Hyperlinks</h3>
<h4>UnBound Control Action Links</h4>
<asp:DynamicHyperLink ID="InsertHyperLink" runat="server"
Action="Insert"
TableName="ProductModels">Insert new item
</asp:DynamicHyperLink>
<br />
<asp:DynamicHyperLink ID="DynamicHyperLink2" runat="server"
Action="Edit"
TableName="ProductModels"
ProductModelID="1">Edit item</asp:DynamicHyperLink>
<h4>Data-Bound Control Meta-Table Action Links</h4>
<asp:GridView ID="GridView2" runat="server"
AutoGenerateColumns="false"
CellPadding="6">
<Columns>
<asp:TemplateField HeaderText="Table Name"
SortExpression="TableName">
<ItemTemplate>
<asp:DynamicHyperLink ID="DynamicHyperLink1"
runat="server"
OnDataBinding="DynamicHyperLink_DataBinding"
TableName='<%# Eval("Name") %>'>
<%# Eval("DisplayName") %>
</asp:DynamicHyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<h4>Data-Bound Control Table Row Action Links</h4>
<asp:GridView ID="GridView1" runat="server"
AllowPaging="true" PageSize="5"
DataSourceID="LinqDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DynamicHyperLink ID="EditHyperLink"
runat="server"
Action="Edit" Text="Edit" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="AdventureWorksLTDataContext"
TableName="Products"/>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="DynamicDataDynamicHyperlink.aspx.vb" Inherits="DocSamples_DynamicDataDynamicHyperlink" %>
<%@ Register src="~/DynamicData/Content/GridViewPager.ascx" tagname="GridViewPager" tagprefix="asp" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Dynamic Hyperlinks</title>
</head>
<body>
<form id="form1" runat="server">
<asp:DynamicDataManager ID="DynamicDataManager1"
runat="server">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
<div>
<h3>Dynamic Hyperlinks</h3>
<h4>UnBound Control Action Links</h4>
<asp:DynamicHyperLink ID="InsertHyperLink" runat="server"
Action="Insert"
ContextTypeName="AdventureWorksLTDataContext"
TableName="ProductModels">Insert new item
</asp:DynamicHyperLink>
<br />
<asp:DynamicHyperLink ID="DynamicHyperLink2" runat="server"
Action="Edit"
ContextTypeName="AdventureWorksLTDataContext"
TableName="ProductModels"
ProductModelID="1">Edit item</asp:DynamicHyperLink>
<h4>Data-Bound Control Meta-Table Action Links</h4>
<asp:GridView ID="GridView2" runat="server"
AutoGenerateColumns="false"
CellPadding="6">
<Columns>
<asp:TemplateField HeaderText="Table Name"
SortExpression="TableName">
<ItemTemplate>
<asp:DynamicHyperLink
ID="DynamicHyperLink1" runat="server">
<%# Eval("DisplayName") %>
</asp:DynamicHyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<h4>Data-Bound Control Table Row Action Links</h4>
<asp:GridView ID="GridView1" runat="server"
AllowPaging="true" PageSize="5"
DataSourceID="LinqDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DynamicHyperLink ID="EditHyperLink"
runat="server"
Action="Edit" Text="Edit" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="AdventureWorksLTDataContext"
TableName="Products"/>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.DynamicData;
public partial class DocSamples_DynamicDataDynamicHyperlink :
System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Get the list of visible tables.
System.Collections.IList tables =
ASP.global_asax.model.VisibleTables;
// Throw an exception if there are no visible tables.
if (tables.Count == 0)
{
throw new InvalidOperationException();
}
// Bind the data-bound control to
// the list of tables.
GridView2.DataSource = tables;
GridView2.DataBind();
}
}
protected void DynamicHyperLink_DataBinding(object sender,
EventArgs e)
{
MetaTable table = (MetaTable)GetDataItem();
DynamicHyperLink dynamicHyperLink =
(DynamicHyperLink)sender;
// Set the context type name for the DynamicHyperLink
dynamicHyperLink.ContextTypeName =
table.DataContextType.AssemblyQualifiedName;
}
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.DynamicData
Partial Public Class DocSamples_DynamicDataDynamicHyperlink
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not IsPostBack Then
' Get the list of visible tables.
Dim tables As System.Collections.IList = _
ASP.global_asax.model.VisibleTables
' Throw an exception if there are no visible tables.
If tables.Count = 0 Then
Throw New InvalidOperationException()
End If
' Bind the data-bound control to
' the list of tables.
GridView2.DataSource = tables
GridView2.DataBind()
End If
End Sub
Protected Sub DynamicHyperLink_DataBinding( _
ByVal sender As Object,ByVal e As EventArgs)
Dim table As MetaTable = DirectCast(GetDataItem(), MetaTable)
Dim dynamicHyperLink As DynamicHyperLink = _
DirectCast(sender, DynamicHyperLink)
' Set the context type name for the DynamicHyperLink.
dynamicHyperLink.ContextTypeName = _
table.DataContextType.AssemblyQualifiedName
End Sub
End Class
備註
在本主題中:
介紹
DynamicHyperLink 控件會根據動態數據所啟用的數據表動作來建立連結。 這些動作會在 Global.asax 檔案中定義為預設路由規則。 規則會與預設頁面範本相關聯,例如Edit.aspx、List.aspx等等。 當使用者按兩下連結時,會顯示一個頁面,讓使用者能夠執行連結所指定的動作。
DynamicHyperLink 控制項可讓您建立下列連結:
數據表數據列數據系結連結,適用於數據項特定動作連結,例如「編輯」和「詳細數據」。 動態數據會從目前數據列推斷數據表和主鍵。 這些連結的範例位於動態數據網站的 [Edit.aspx] 頁面中。
MetaTable 對象的連結,這些物件是特定動作連結,例如「清單」和「插入」,接著會指向數據表等物件。 這些連結的範例位於動態數據網站的 [Default.aspx] 頁面中。
取消系結連結,可建立數據綁定控件外部的數據表動作連結。 這些連結的範例位於動態數據網站的 List.aspx 頁面範本中的 [插入] 連結。 因為這些連結不屬於具有已定義數據內容的數據綁定控件的一部分,因此您必須指定要存取的數據表,以及要執行的動作。 如果您將 「編輯」或「詳細數據」指定為動作,您也必須提供主鍵。
DynamicHyperLink 控制項支援其他標記屬性,然後在啟用連結時轉送至路由引擎。 當您想要有來自非數據系結內容的專案特定連結時,這非常有用。
宣告式語法
<asp:DynamicHyperlink
ID="string"
Action="Details|Edit|Insert|List"
ContextTypeName="string"
DataField="string"
TableName="string"
OnDataBinding="DataBinding event handler"
OnPreRender="PreRender event handler"/>
建構函式
DynamicHyperLink() |
初始化 DynamicHyperLink 類別的新實例。 |
屬性
AccessKey |
取得或設定存取金鑰,可讓您快速流覽至 Web 伺服器控制項。 (繼承來源 WebControl) |
Action |
取得或設定與連結相關聯的動作。 |
Adapter |
取得控制器特定配接器。 (繼承來源 Control) |
AppRelativeTemplateSourceDirectory |
取得或設定包含這個控制項之 Page 或 UserControl 物件的應用程式相對虛擬目錄。 (繼承來源 Control) |
Attributes |
取得任意屬性的集合(僅適用於轉譯),這些屬性不會對應至 控件上的屬性。 (繼承來源 WebControl) |
BackColor |
取得或設定 Web 伺服器控制件的背景色彩。 (繼承來源 WebControl) |
BindingContainer |
取得包含此控件數據系結的 控件。 (繼承來源 Control) |
BorderColor |
取得或設定 Web 控制件的框線色彩。 (繼承來源 WebControl) |
BorderStyle |
取得或設定 Web 伺服器控制件的框線樣式。 (繼承來源 WebControl) |
BorderWidth |
取得或設定 Web 伺服器控制件的框線寬度。 (繼承來源 WebControl) |
ChildControlsCreated |
取得值,這個值表示是否已建立伺服器控制件的子控件。 (繼承來源 Control) |
ClientID |
取得由 ASP.NET 產生的 HTML 標記控件識別碼。 (繼承來源 Control) |
ClientIDMode |
取得或設定用來產生 ClientID 屬性值的演算法。 (繼承來源 Control) |
ClientIDSeparator |
取得字元值,表示 ClientID 屬性中使用的分隔符。 (繼承來源 Control) |
Context |
取得與目前 Web 要求之伺服器控制項相關聯的 HttpContext 物件。 (繼承來源 Control) |
ContextTypeName |
取得或設定連結所套用之數據模型的數據內容。 |
Controls |
取得 ControlCollection 物件,代表UI階層中指定之伺服器控件的子控件。 (繼承來源 Control) |
ControlStyle |
取得 Web 伺服器控制件的樣式。 此屬性主要是由控件開發人員使用。 (繼承來源 WebControl) |
ControlStyleCreated |
取得值,指出是否已為 ControlStyle 屬性建立 Style 物件。 此屬性主要供控件開發人員使用。 (繼承來源 WebControl) |
CssClass |
取得或設定用戶端上 Web 伺服器控制項所轉譯的級聯樣式表單 (CSS) 類別。 (繼承來源 WebControl) |
DataField |
取得或設定連結顯示文字。 |
DataItemContainer |
如果命名容器實作 IDataItemContainer,則取得命名容器的參考。 (繼承來源 Control) |
DataKeysContainer |
如果命名容器實作 IDataKeysControl,則取得命名容器的參考。 (繼承來源 Control) |
DesignMode |
取得值,指出控件是否在設計介面上使用。 (繼承來源 Control) |
Enabled |
取得或設定值,指出是否啟用 Web 伺服器控制件。 (繼承來源 WebControl) |
EnableTheming |
取得或設定值,指出主題是否套用至這個控件。 (繼承來源 WebControl) |
EnableViewState |
取得或設定值,指出伺服器控制項是否將檢視狀態及其包含之任何子控件的檢視狀態保存至要求用戶端。 (繼承來源 Control) |
Events |
取得控制項的事件處理程式委派清單。 這個屬性是唯讀的。 (繼承來源 Control) |
Font |
取得與網頁伺服器控件相關聯的字型屬性。 (繼承來源 WebControl) |
ForeColor |
取得或設定網頁伺服器控制件的前景色彩(通常是文字的色彩)。 (繼承來源 WebControl) |
HasAttributes |
取得值,指出控件是否設定屬性。 (繼承來源 WebControl) |
HasChildViewState |
取得值,指出目前伺服器控件的子控件是否有任何儲存的檢視狀態設定。 (繼承來源 Control) |
Height |
取得或設定 Web 伺服器控制件的高度。 (繼承來源 WebControl) |
ID |
取得或設定指派給伺服器控制件的程式設計標識碼。 (繼承來源 Control) |
IdSeparator |
取得用來分隔控件識別碼的字元。 (繼承來源 Control) |
ImageHeight |
取得或設定超連結為影像時超連結的高度。 (繼承來源 HyperLink) |
ImageUrl |
取得或設定要針對 HyperLink 控件顯示的影像路徑。 (繼承來源 HyperLink) |
ImageWidth |
取得或設定超連結為影像時的超連結寬度。 (繼承來源 HyperLink) |
IsChildControlStateCleared |
取得值,指出這個控件中包含的控件是否具有控件狀態。 (繼承來源 Control) |
IsEnabled |
取得值,指出控制件是否已啟用。 (繼承來源 WebControl) |
IsTrackingViewState |
取得值,這個值表示伺服器控件是否將變更儲存至其檢視狀態。 (繼承來源 Control) |
IsViewStateEnabled |
取得值,指出這個控件是否啟用檢視狀態。 (繼承來源 Control) |
LoadViewStateByID |
取得值,指出控件是否參與藉由 ID 而不是索引載入其檢視狀態。 (繼承來源 Control) |
NamingContainer |
取得伺服器控制項命名容器的參考,這個容器會建立唯一的命名空間,以區分具有相同 ID 屬性值的伺服器控制件。 (繼承來源 Control) |
NavigateUrl |
取得或設定按一下 HyperLink 控件時要連結的URL。 (繼承來源 HyperLink) |
Page |
取得包含伺服器控制件之 Page 實例的參考。 (繼承來源 Control) |
Parent |
取得頁面控件階層中伺服器控制件之父控件的參考。 (繼承來源 Control) |
RenderingCompatibility |
取得值,指定轉譯 HTML 與 的 ASP.NET 版本相容。 (繼承來源 Control) |
Site |
取得在設計介面上呈現時裝載目前控制件之容器的相關信息。 (繼承來源 Control) |
SkinID |
取得或設定要套用至控件的面板。 (繼承來源 WebControl) |
Style |
取得文字屬性的集合,這些屬性將會轉譯為 Web 伺服器控件外部標記上的樣式屬性。 (繼承來源 WebControl) |
SupportsDisabledAttribute |
取得值,這個值表示當控件的 IsEnabled 屬性 |
TabIndex |
取得或設定 Web 伺服器控制件的索引標籤索引。 (繼承來源 WebControl) |
TableName |
取得或設定連結動作的數據表。 |
TagKey |
取得對應至這個 Web 伺服器控制件的 HtmlTextWriterTag 值。 此屬性主要是由控件開發人員使用。 (繼承來源 WebControl) |
TagName |
取得控件標記的名稱。 此屬性主要是由控件開發人員使用。 (繼承來源 WebControl) |
Target |
取得或設定按兩下 HyperLink 控制項時,要在其中顯示連結的網頁內容的目標視窗或框架。 (繼承來源 HyperLink) |
TemplateControl |
取得或設定包含這個控件之範本的參考。 (繼承來源 Control) |
TemplateSourceDirectory |
取得包含目前伺服器控制件之 Page 或 UserControl 的虛擬目錄。 (繼承來源 Control) |
Text |
取得或設定 HyperLink 控件的文字標題。 (繼承來源 HyperLink) |
ToolTip |
取得或設定滑鼠指標停留在 Web 伺服器控制件上時所顯示的文字。 (繼承來源 WebControl) |
UniqueID |
取得伺服器控制件的唯一階層式限定標識碼。 (繼承來源 Control) |
ValidateRequestMode |
取得或設定值,這個值表示控件是否會檢查瀏覽器的用戶端輸入是否有潛在的危險值。 (繼承來源 Control) |
ViewState |
取得狀態資訊的字典,可讓您跨相同頁面的多個要求儲存和還原伺服器控件的檢視狀態。 (繼承來源 Control) |
ViewStateIgnoresCase |
取得值,這個值表示 StateBag 物件是否不區分大小寫。 (繼承來源 Control) |
ViewStateMode |
取得或設定這個控件的檢視狀態模式。 (繼承來源 Control) |
Visible |
取得或設定值,這個值表示伺服器控制項是否呈現為頁面上的UI。 (繼承來源 Control) |
Width |
取得或設定 Web 伺服器控制件的寬度。 (繼承來源 WebControl) |
方法
事件
DataBinding |
當伺服器控制項系結至數據源時發生。 (繼承來源 Control) |
Disposed |
發生於從記憶體釋放伺服器控制項時,這是要求 ASP.NET 頁面時伺服器控件生命週期的最後階段。 (繼承來源 Control) |
Init |
當伺服器控件初始化時發生,這是其生命週期中的第一個步驟。 (繼承來源 Control) |
Load |
當伺服器控制項載入至 Page 物件時發生。 (繼承來源 Control) |
PreRender |
發生在載入 Control 物件之後,但在轉譯之前發生。 (繼承來源 Control) |
Unload |
發生於伺服器控制件從記憶體卸除時。 (繼承來源 Control) |
明確介面實作
擴充方法
FindDataSourceControl(Control) |
傳回與指定控件之數據控件相關聯的數據源。 |
FindFieldTemplate(Control, String) |
傳回指定控件命名容器中指定數據行的欄位範本。 |
FindMetaTable(Control) |
傳回包含數據控制件的中繼資料表物件。 |