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 项目: 搭建动态数据的基架。
以下示例演示如何为数据行、集合创建 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 标记的控件 ID。 (继承自 Control) |
ClientIDMode |
获取或设置用于生成 ClientID 属性值的算法。 (继承自 Control) |
ClientIDSeparator |
获取一个字符值,该值表示 ClientID 属性中使用的分隔符字符。 (继承自 Control) |
Context |
为当前 Web 请求获取与服务器控件关联的 HttpContext 对象。 (继承自 Control) |
ContextTypeName |
获取或设置链接所适用的数据模型的数据上下文。 |
Controls |
获取 ControlCollection 对象,该对象表示 UI 层次结构中的指定服务器控件的子控件。 (继承自 Control) |
ControlStyle |
获取 Web 服务器控件的样式。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
ControlStyleCreated |
获取一个值,该值指示是否已为 Style 属性创建了 ControlStyle 对象。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
CssClass |
获取或设置由 Web 服务器控件在客户端呈现的级联样式表 (CSS) 类。 (继承自 WebControl) |
DataField |
获取或设置链接显示文本。 |
DataItemContainer |
如果命名容器实现 IDataItemContainer,则获取对命名容器的引用。 (继承自 Control) |
DataKeysContainer |
如果命名容器实现 IDataKeysControl,则获取对命名容器的引用。 (继承自 Control) |
DesignMode |
获取一个值,该值指示是否正在使用设计图面上的一个控件。 (继承自 Control) |
Enabled |
获取或设置一个值,该值指示是否启用 Web 服务器控件。 (继承自 WebControl) |
EnableTheming |
获取或设置一个值,该值指示主题是否应用于该控件。 (继承自 WebControl) |
EnableViewState |
获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。 (继承自 Control) |
Events |
获取控件的事件处理程序委托列表。 此属性为只读。 (继承自 Control) |
Font |
获取与 Web 服务器控件关联的字体属性。 (继承自 WebControl) |
ForeColor |
获取或设置 Web 服务器控件的前景色(通常是文本颜色)。 (继承自 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 |
获取对页 UI 层次结构中服务器控件的父控件的引用。 (继承自 Control) |
RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 (继承自 Control) |
Site |
获取容器信息,该容器在呈现于设计图面上时承载当前控件。 (继承自 Control) |
SkinID |
获取或设置要应用于控件的外观。 (继承自 WebControl) |
Style |
获取将在 Web 服务器控件的外部标记上呈现为样式特性的文本特性的集合。 (继承自 WebControl) |
SupportsDisabledAttribute |
获取一个值,该值指示在控件的 |
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) |
返回包含数据控件的元表对象。 |