最近在SharePoint2007中用到了WebPart通信技术,个人觉得2007版本里面的ConnectionConsumer和ConnectionProvider没有2010版本那么好用,于是换了一种思想去实现通信:WebPart容器中装一个UserControl控件,这样只要UserControl可以通信,就实现了WebPart之间通信。
下面我就用ASP.NET的UserControl模拟SharePoint UserControl通信,两者的本质,思想和实现方式都不变。
UserControl是用户自定义控件,我们可以在UserControl中注入事件,当一个UserControl触发某种事件,然后通过事件参数来传递数据,让其他UserControl获得这个事件传递过来的参数,实现通信。
下面简单演示一下两个UserControl进行通信,创建好一个类,两个UserControl和一个web页面。
这里分别是MyEventAgrs.cs,UCProvider.ascx,UCComsumer.ascx,Default.aspx。
MyEventAgrs.cs代码如下:
public delegate void MyEventHandle(object sender, MyEventAgrs args); public class MyEventAgrs : EventArgs { public MyEventAgrs() { } public string MyMsg { get; set; } }