实现WebPart管理功能和通信功能
2007-09-19 14:46 Jacky_Xu 阅读(350) 评论(1) 编辑 收藏 举报 实现WebPart管理功能需要用到CatalogZone、DeclarativeCatalogPart、PageCatalogPart、ImportCatalogPart这四个控件。其中CatalogZone是作为后三个控件的容器。
DeclarativeCatalogPart:以声明的方式向控件目录中添加WebPart控件。用户可以在声明性目录中选中它,将其添加到其他WebPartZone中。
PageCatalogPart:用于维护页面的控件。被关闭的关闭的控件会被添加到页目录中去,用户可以自由的使其回到其他WebPartZone 中,但是被删除的控件则从页上永久删除,无法恢复。已关闭的控件具有以下几个属性:页上不可见,也不呈现,不参与页生命周期各阶段。
ImportCatalogPart:用于向页面中导入扩展名为.WebPart的文件,可以将一些WebPart控件迅速添加的页面中。
当满足以下3各条件时,可以为一个WebPart控件导出说明文件:一、该WebPart控件具有用Personalizable属性(Attribute)标记的属性(Property)。二、Web.config文件将<webParts>配置节的enabkeExport属性值设置为true。三、WebPart控件的ExportMode属性值设置为默认值None(该值禁止导出)以外的值。如果ExportMode属性值设置为NonSensitiveData,则当用户导出说明文件时,任何敏感信息都不会被导出。
在一个页面中的WebPart控件之间是相互独立的,依赖与它的通信机制我们可以实现基于静态连接和动态连接的WebPart通信。
在互相通信的WebPart控件之间,一方作为Provider,另一方作为Consumer,他们之间的数据交互由WebPartManager来管理。在同一个页面中,可以存在多对通信,同一个Provider可以与多个Consumer通信,但是一个Consumer只能从一个Provider那获取数据。
实现WebPart通信的方法:
(1)定义接口
(2)实现接口成员
(3)在Provider中实现[ConnectionProvider]方法
(4)在Consumer中实现[ConnectionConsumer]方法
(5)在WebPartManager中声明静态连接
基于动态的连接的WebPart通信只是不需要在WebPartManager中声明静态连接,并且添加了一个ConnectionsZone。