代码改变世界

实现WebPart管理功能和通信功能

2007-09-19 14:46  Jacky_Xu  阅读(350)  评论(1编辑  收藏  举报
实现WebPart管理功能

    实现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通信。
    在互相通信的WebPart控件之间,一方作为Provider,另一方作为Consumer,他们之间的数据交互由WebPartManager来管理。在同一个页面中,可以存在多对通信,同一个Provider可以与多个Consumer通信,但是一个Consumer只能从一个Provider那获取数据。
    实现WebPart通信的方法:
    (1)定义接口
    (2)实现接口成员
    (3)在Provider中实现[ConnectionProvider]方法
    (4)在Consumer中实现[ConnectionConsumer]方法
    (5)在WebPartManager中声明静态连接

    基于动态的连接的WebPart通信只是不需要在WebPartManager中声明静态连接,并且添加了一个ConnectionsZone。