引入ASP.NET 2.0 Web 部件连接
发布时间:2006-04-13 23:37:01 来源:msdn 网友评论 0 条 命名连接点
在我目前生成的示例中,提供者 Web 部件和使用者 Web 部件之间的连接已经基于默认的连接点。但是,Web 部件连接方法提供一个命名连接点是可能的。要将一个命名连接点添加到提供者,您只需将第二个字符串参数添加到 ConnectionProvider 属性:
之所以使用命名连接点的一个原因是提供者或使用者可能有多个连接点,因此必须能区分它们。要将一个命名连接点添加到使用者 Web 部件,您可以将第二个字符串参数添加到 ConnectionConsumer 属性:
当您开始使用命名连接点时,在页面级定义 StaticConnections 标记时,必须为 ProviderConnectionPointID 和 ConsumerConnectionPointID 提供两个额外的属性值。
动态建立连接
当您想将 Web 部件连接在一起时,有时却无法依赖静态 Web 部件连接。例如,如果您想连接通过自定义代码动态创建的 Web 部件,或者由使用 Web 部件目录将 Web 部件添加到页面的用户动态创建的 Web 部件,就会出现这种情况。
在无法使用静态 Web 部件连接时,您必须使用动态技术连接 Web 部件。为此,可以使用自定义代码,或者使用 ASP.NET 2.0 Web 部件控件集附带的 ConnectionsZone 控件。
让我们首先看一下创建两个 Web 部件并将它们动态连接在一起的自定义代码,如图 5 所示。该代码通过用户控件为提供者和使用者创建了 Web 部件实例,并将它们添加到宿主 Web 部件页面的现有 Web 部件区域。然后,该代码在它们之间建立一个连接。请注意,Web 部件和连接将保存为用户个性化信息的一部分,因此它们应该只添加到 WebPartManager 一次。如果您不想以这种方式保存 Web 部件和连接,也可以使用其他 API。
您可以看到,图 5 中显示的技术需要使用 ProviderConnectionPoint 对象和 ConsumerConnectionPoint。通过调用 WebPartManager 提供的方法并传递那些命名连接点的字符串标识符,可以检索这些对象。
您和您的用户可以用来建立动态 Web 部件连接的另一种技术涉及到 ConnectionsZone 控件。要有效地使用该技术,您应该创建一个 Web 部件页面,其右侧有一个包含 ConnectionsZone 控件的任务窗格。当用户使该页面处于连接视图显示模式中时,Connect 命令将添加到公开连接点的每个 Web 部件的 Web 部件菜单中,如图 6 所示。
当用户选择 Connect 命令时,Web 部件页面会显示 ConnectionsZone 控件,并允许用户查看该页面上所有可连接的 Web 部件的所有兼容连接点(请参见图 7)。使用该技术,您可以将使用者连接到提供者。同样,您也可以将提供者连接到使用者。
在我目前生成的示例中,提供者 Web 部件和使用者 Web 部件之间的连接已经基于默认的连接点。但是,Web 部件连接方法提供一个命名连接点是可能的。要将一个命名连接点添加到提供者,您只需将第二个字符串参数添加到 ConnectionProvider 属性:
<ConnectionProvider("Customer ID Provider", "CustomerIDProvider")> _ Public Function GetCustomerProvider() As ICustomerIDProvider Return Me End Function |
之所以使用命名连接点的一个原因是提供者或使用者可能有多个连接点,因此必须能区分它们。要将一个命名连接点添加到使用者 Web 部件,您可以将第二个字符串参数添加到 ConnectionConsumer 属性:
<ConnectionConsumer("Customer ID" & "Consumer", "CustomerIDConsumer")> _ Sub RegisterCustomerProvider(ByVal provider As ICustomerIDProvider) Me.provider = provider End Sub |
当您开始使用命名连接点时,在页面级定义 StaticConnections 标记时,必须为 ProviderConnectionPointID 和 ConsumerConnectionPointID 提供两个额外的属性值。
动态建立连接
当您想将 Web 部件连接在一起时,有时却无法依赖静态 Web 部件连接。例如,如果您想连接通过自定义代码动态创建的 Web 部件,或者由使用 Web 部件目录将 Web 部件添加到页面的用户动态创建的 Web 部件,就会出现这种情况。
在无法使用静态 Web 部件连接时,您必须使用动态技术连接 Web 部件。为此,可以使用自定义代码,或者使用 ASP.NET 2.0 Web 部件控件集附带的 ConnectionsZone 控件。
让我们首先看一下创建两个 Web 部件并将它们动态连接在一起的自定义代码,如图 5 所示。该代码通过用户控件为提供者和使用者创建了 Web 部件实例,并将它们添加到宿主 Web 部件页面的现有 Web 部件区域。然后,该代码在它们之间建立一个连接。请注意,Web 部件和连接将保存为用户个性化信息的一部分,因此它们应该只添加到 WebPartManager 一次。如果您不想以这种方式保存 Web 部件和连接,也可以使用其他 API。
| '*** get WebPartManager object Dim wpMgr As WebPartManager = _ WebPartManager.GetCurrentWebPartManager(Me.Page) '*** create and add provider Web Part Dim uc1 As UserControl = Me.Page.LoadControl("~/WebParts/Customers.ascx") uc1.ID = "wp1" Dim wp1 As GenericWebPart = wpMgr.CreateWebPart(uc1) wp1 = wpMgr.AddWebPart(wp1, LeftWebPartZone, 0) '*** create and add consumer Web Part Dim uc2 As UserControl = _ Me.Page.LoadControl("~/WebParts/CustomerDetails.ascx") uc2.ID = "wp2" Dim wp2 As GenericWebPart = wpMgr.CreateWebPart(uc2) wp2 = wpMgr.AddWebPart(wp2, RightWebPartZone, 0) '*** get desired connection points for provider and consumer Dim cp1 As ProviderConnectionPoint = _ wpMgr.GetProviderConnectionPoints(wp1)("CustomerIDProvider") Dim cp2 As ConsumerConnectionPoint = _ wpMgr.GetConsumerConnectionPoints(wp2)("CustomerIDConsumer") '*** dynamically establish Web Part connection wpMgr.ConnectWebParts(wp1, cp1, wp2, cp2) 图 5 ![]() 图 6 连接显示模式 |
您可以看到,图 5 中显示的技术需要使用 ProviderConnectionPoint 对象和 ConsumerConnectionPoint。通过调用 WebPartManager 提供的方法并传递那些命名连接点的字符串标识符,可以检索这些对象。
您和您的用户可以用来建立动态 Web 部件连接的另一种技术涉及到 ConnectionsZone 控件。要有效地使用该技术,您应该创建一个 Web 部件页面,其右侧有一个包含 ConnectionsZone 控件的任务窗格。当用户使该页面处于连接视图显示模式中时,Connect 命令将添加到公开连接点的每个 Web 部件的 Web 部件菜单中,如图 6 所示。
当用户选择 Connect 命令时,Web 部件页面会显示 ConnectionsZone 控件,并允许用户查看该页面上所有可连接的 Web 部件的所有兼容连接点(请参见图 7)。使用该技术,您可以将使用者连接到提供者。同样,您也可以将提供者连接到使用者。
![]() |
- 推荐阅讯
- 当ASP.NET撞上JSF之框架比较
- ASP.NET Atlas简单控件介绍之界面控件
- ASP.NET 2.0中轻松实现网站换肤
- 在ASP.NET中自动给URL加上超链接
- ASP.NET 2.0客户端回调的实现分析
- 如何充分利用ASP.NET 2.0预编译
- ASP.NET 2.0页面框架简要慨述
- ASP.NET2.0中Gridview中数据操作技巧
- ASP.NET2.0数据操作之创建业务逻辑层
- 在ASP.NET中跨页面实现多选
- 阅读排行
- 1.用ASP.NET 2.0设计网络在线投票系统
- 2.在ASP.Net 2.0中实现多语言界面的方法
- 3.轻松加密ASP.NET 2.0 Web程序配置信息
- 4.在ASP.NET中使用AJAX的简单方法
- 5..NET 2.0中的企业库异常处理块简述
- 6.面向.NET开发人员的Ajax 技术平台策略
- 7.揭开ASP.NET中Cookie编程的奥秘
- 8.ASP.NET2.0服务器控件之创建自定义控件
- 9.ASP.NET2.0中Gridview中数据操作技巧
- 10.ASP.NET 2.0发送电子邮件全面剖析之二
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册


