通过Web Part Connection 在Web Part 之间传递数据(二)

发现网上关于Web Part Connection 的资料非常少现在,在这个Session我就为大家介绍一个
Web Part Connection 来实现Web Part之间数据传递的Sample

总结了下,实现Web Part Connection 的开发大概分为这么几步:

根据要传递的数据类型定义接口

创建一个实现接口的类

创建Provider Web Part,实现提供数据的方法

创建 Consumer Web Part,实现接收数据的方法

下面通过一个简单的demo 进一步了解Web Part Connection

首先我们创建一个"WebPartConnection” SharePoint Project,在项目里添加如下3 Class:


IMessage     是实现要传递数据的接口定义

public interface IMessage

    {

        String MessageContent{get;set;}

    }

并在里头定义了一个Message类,来实现IMessage接口

public class Message : IMessage

    {

        private string _sMessageContent=default(string);

        public string MessageContent

        {

            get{return _sMessageContent;}

            set{_sMessageContent = value;}

        }

    }

ProviderWP   数据提供Web Part, 实现提供数据的方法ReturnMessage()

[ConnectionProvider("Return the message")]

        public IMessage ReturnMessage()

        {

            this.EnsureChildControls();

            IMessage result = new Message();

            result.MessageContent = txtMessageBox.Text.Trim();

            return result;

        }

"ConnectionProvider Attribute" 标识了此方法就是Provider WP 用来提供数据的方法

ConsumerWP 数据接收Web Part, 实现接收数据的方法RecieveMessage ()

        [ConnectionConsumer("recieve the message")]       

        public void RecieveMessage(IMessage msg)

        {

            if (msg != null && msg.MessageContent != null)

            {

                OutputText = msg.MessageContent;

            }

        }

"ConnectionConsumer Attribute" 标识了此方法就是Consumer WP 用来接收数据的方法

最后,我们把开发好的Web Part 部署到SharePoint站点上,将ProviderWP ConsumerWP 

添加到同一个页面上,通过简单的配置就可以实现这俩个Web Part之间传递数据了.

部署Web Part步骤很简单在这里就不做介绍了.


源代码下载

这个例子,我们只是做了简单的值传递,并且在Comsumer WP 中直接简单地render,
如果我们要用到这个传递过来的值,实现更复杂的逻辑,那么你就要了解RecieveMessage这个方法它
在整个web part 生命周期里执行的顺序。例如这个方法的执行是在CreateChildControls()之后,
Render()方法之前被执行的。清楚了这些,我们才能去开发更复杂的web part connection.

posted on 2008-01-24 19:21  Ken Lin  阅读(972)  评论(2编辑  收藏  举报

导航