Step1) Create Sharepoint Project using Visual Studio 2010
1) select .net framework 3.5
2)select empty project
Step2) Add 2 webparts
1.Consumer WebPart
2.Provider Webpart
Step3) add common interface inorder to share information between webparts(i.e consumer & provider)
Step 4) Deploy the Project
Step5) create new "WebPart" page. wikipage doesn't provide connecting weparts.
Example
Provider webpart code.
filename:
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace connwp_demo.ProviderWp
{
[ToolboxItemAttribute(false)]
public class ProviderWp : WebPart,IProvConsBridge
{
TextBox box = new TextBox();
String _text = string.Empty;
Button btn = new Button();
protected override void CreateChildControls()
{
box.Text = "This info will be passed to Consumer";
this.Controls.Add(box);
btn.Text = "Send Data";
this.Controls.Add(new System.Web.UI.LiteralControl("<br/>"));
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);
}
void btn_Click(object sender, EventArgs e)
{
_text = box.Text;
box.Text=string.Empty;
}
public string Message
{
get
{
return _text;
}
set
{
_text = value;
}
}
[ConnectionProvider("Conn provider")]
public IProvConsBridge ProviderInfo()
{
//this.Message = box.Text;
return this;
}
}
}
1) select .net framework 3.5
2)select empty project
Step2) Add 2 webparts
1.Consumer WebPart
2.Provider Webpart
Step3) add common interface inorder to share information between webparts(i.e consumer & provider)
Step 4) Deploy the Project
Step5) create new "WebPart" page. wikipage doesn't provide connecting weparts.
Example
Provider webpart code.
filename:
ProviderWp.cs
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace connwp_demo.ProviderWp
{
[ToolboxItemAttribute(false)]
public class ProviderWp : WebPart,IProvConsBridge
{
TextBox box = new TextBox();
String _text = string.Empty;
Button btn = new Button();
protected override void CreateChildControls()
{
box.Text = "This info will be passed to Consumer";
this.Controls.Add(box);
btn.Text = "Send Data";
this.Controls.Add(new System.Web.UI.LiteralControl("<br/>"));
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);
}
void btn_Click(object sender, EventArgs e)
{
_text = box.Text;
box.Text=string.Empty;
}
public string Message
{
get
{
return _text;
}
set
{
_text = value;
}
}
[ConnectionProvider("Conn provider")]
public IProvConsBridge ProviderInfo()
{
//this.Message = box.Text;
return this;
}
}
}
Consumer Webpart Code
filename:ConsumerWp.cs
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace connwp_demo.ConsumerWp
{
[ToolboxItemAttribute(false)]
public class ConsumerWp : WebPart
{
IProvConsBridge bridge;
Label lbl = new Label();
protected override void CreateChildControls()
{
lbl.Text = "info updated by provider";
this.Controls.Add(lbl);
}
protected override void OnPreRender(EventArgs e)
{
EnsureChildControls();
if (bridge != null)
{
lbl.Text = bridge.Message;
}
}
[ConnectionConsumer("consumer")]
public void GetProvider(IProvConsBridge fromp)
{
bridge = fromp;
}
}
}
common interface code (it must be an interface, because .NET doesn't support multiple inheritance). interface must be public
filename:IProvConsBridge.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace connwp_demo
{
public interface IProvConsBridge
{
String Message{get;set;}
}
}
Deploy the Solution
Create "WebPart" page , wikipage don't not support connecting webparts, but supports individual webparts.
add webparts to a page. 1) ProviderWp 2) consumer Webpart
OUTPUT:
No comments:
Post a Comment