3-10 SharePoint 开发自定义WebPart连接
创建webpart发送类
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 ljzCustomWebPartLianJie.WPSend { [ToolboxItemAttribute(false)] public class WPSend : WebPart,IWebPartField { private TextBox tb; private Button btn; protected override void CreateChildControls() { tb = new TextBox(); Controls.Add(tb); btn = new Button(); btn.Text = "Send"; Controls.Add(btn); } //创建一个接口实例 [ConnectionProvider("Send", AllowsMultipleConnections = true)] public IWebPartField SendObject() { EnsureChildControls(); return this; } //将数据callback到接口实例 public void GetFieldValue(FieldCallback callback) { EnsureChildControls(); callback(tb.Text); } // Schema 属性返回 PropertyDescriptor 对象所封装的数据字段的架构信息 public System.ComponentModel.PropertyDescriptor Schema { get { return null; } } } }
webpart接收类
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 ljzCustomWebPartLianJie.WPReceiver { [ToolboxItemAttribute(false)] public class WPReceiver : WebPart { private Label lbl; private IWebPartField provider; protected override void CreateChildControls() { lbl = new Label(); Controls.Add(lbl); } //检索接口实例 [ConnectionConsumer("GetObject")] public void RecvObject(IWebPartField prov) { provider = prov; } //获取接口实例中的数据 private void GetData(object fieldValue) { lbl.Text = Convert.ToString(fieldValue); } //在Render前去接口实例获取值 protected override void OnPreRender(EventArgs e) { if (provider != null) provider.GetFieldValue(new FieldCallback(GetData)); base.OnPreRender(e); } } }

浙公网安备 33010602011771号