通过Web Part Connection 在Web Part 之间传递数据(二)
用Web Part Connection 来实现Web Part之间数据传递的Sample
总结了下,实现Web Part Connection 的开发大概分为这么几步:
l 根据要传递的数据类型定义接口
l 创建一个实现接口的类
l 创建Provider Web Part,实现提供数据的方法
l 创建 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.
IW.Smart Work