SharePoint發(fā)行版本有SharePoint2003、SharePoint2007、Sharepoint 2010、SharePoint2013和SharePoint2016。SharePoint提供了功能強(qiáng)大的團(tuán)隊(duì)協(xié)作環(huán)境,使得組織能夠在整個(gè)組織內(nèi)部實(shí)現(xiàn)整合、組織、查找和提供 SharePoint站點(diǎn)。 1、創(chuàng)建SharePoint解決方案,添加兩個(gè)WebPart分別用來(lái)發(fā)送和接收; 2、發(fā)送值的WebPart需要繼承自IWebPartField(當(dāng)然,根據(jù)需要還可以選擇IWebPartField,IWebPartParameters,IWebPartRow,IWebPartTable,具體參見(jiàn)msdn),原理是將需要發(fā)送的值,放到一個(gè)接口實(shí)例里; public class SendWebPart : WebPart, IWebPartField 詳細(xì)代碼: ![]() 1 private TextBox tb; 2 private Button btn; 3 4 protected override void CreateChildControls() 5 { 6 tb = new TextBox(); 7 Controls.Add(tb); 8 btn = new Button(); 9 btn.Text = "Send";10 Controls.Add(btn);11 }12 //創(chuàng)建一個(gè)接口實(shí)例13 [ConnectionProvider("Send", AllowsMultipleConnections = true)]14 public IWebPartField SendObject()15 {16 EnsureChildControls();17 return this;18 }19 20 //將數(shù)據(jù)callback到接口實(shí)例21 public void GetFieldValue(FieldCallback callback)22 {23 EnsureChildControls();24 callback(tb.Text);25 }26 // Schema 屬性返回 PropertyDescriptor 對(duì)象所封裝的數(shù)據(jù)字段的架構(gòu)信息27 public System.ComponentModel.PropertyDescriptor Schema28 {29 get { return null; }30 } ![]() 3、接受數(shù)據(jù)的WebPart,原理就是在render之前去共享的接口實(shí)例中獲取值,然后使用; ![]() 1 private Label lbl; 2 private IWebPartField provider; 3 4 protected override void CreateChildControls() 5 { 6 lbl = new Label(); 7 Controls.Add(lbl); 8 } 9 //檢索接口實(shí)例10 [ConnectionConsumer("GetObject")]11 public void RecvObject(IWebPartField prov)12 {13 provider = prov;14 }15 //獲取接口實(shí)例中的數(shù)據(jù)16 private void GetData(object fieldValue)17 {18 lbl.Text = Convert.ToString(fieldValue);19 }20 //在Render前去接口實(shí)例獲取值21 protected override void OnPreRender(EventArgs e)22 {23 if (provider != null)24 provider.GetFieldValue(new FieldCallback(GetData));25 base.OnPreRender(e);26 } ![]() 4、部署WebPart,然后連接,如下圖: 5、查看效果 點(diǎn)擊Send前,只能看到頁(yè)面上的兩個(gè)webpart,如下圖: 在TextBox中輸入值,點(diǎn)擊Send,刷新頁(yè)面,TextBox中的值已經(jīng)從SendWebPart中發(fā)送到ReceiveWebPart中了,兩個(gè)自定義WebPart連接成功! 總 結(jié) 在完成了兩個(gè)自定義WebPart連接以后,自己還想過(guò)連接SharePoint自帶的WebPart,但是由于時(shí)間關(guān)系,還沒(méi)有發(fā)現(xiàn)如何連接,有成功的希望可以給我留言~~~謝謝~~ 備 注 此接口旨在用于 Web 部件連接。在 Web 部件連接中,位于 WebPartZoneBase 區(qū)域中的兩個(gè)服務(wù)器控件建立一個(gè)連接并共享數(shù)據(jù),其中一個(gè)控件充當(dāng)使用者,另一個(gè)控件充當(dāng)提供者。Web 部件連接中共享數(shù)據(jù)的機(jī)制是接口實(shí)例,提供者通過(guò)使用回調(diào)方法將其提供給使用者。若要建立連接,使用者和提供者必須同時(shí)使用同一接口類型共享數(shù)據(jù)。如果使用者無(wú)法識(shí)別由提供者發(fā)送的接口類型,還可以通過(guò)使用轉(zhuǎn)換器(WebPartTransformer 對(duì)象)連接控件,轉(zhuǎn)換器可將提供者發(fā)送的接口實(shí)例轉(zhuǎn)換為使用者可以識(shí)別的類型。有關(guān)連接的詳細(xì)信息,請(qǐng)參見(jiàn) WebPartConnection 和 Web 部件連接概述。 IWebPartField 接口是 Web 部件控件集中所包含的一個(gè)提供者接口,用作基于數(shù)據(jù)字段創(chuàng)建連接的標(biāo)準(zhǔn)接口。您也可以創(chuàng)建自定義接口以用于 Web 部件連接,但在由數(shù)據(jù)驅(qū)動(dòng)的許多 Web 應(yīng)用程序中,使用 IWebPartField 接口基于數(shù)據(jù)源中的公共行(有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn) IWebPartRow 接口)、表(有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn) IWebPartTable 接口)或字段創(chuàng)建連接是很有用的。在典型連接中,充當(dāng)提供者的 WebPart 控件將實(shí)現(xiàn) IWebPartField 接口并用特殊的回調(diào)方法將該接口的實(shí)例提供給使用者。例如,提供者可以為用戶信息表中包含 Web 用戶郵政編碼數(shù)據(jù)的字段實(shí)現(xiàn) IWebPartField 接口。另一個(gè)充當(dāng)使用者的 WebPart 控件則定義一個(gè)特殊的方法來(lái)接收該接口實(shí)例,然后可以提取郵政編碼數(shù)據(jù),根據(jù)該郵政編碼查詢并顯示天氣信息。 IWebPartField 接口有兩個(gè)公開的成員。Schema 屬性返回 PropertyDescriptor 對(duì)象所封裝的數(shù)據(jù)字段的架構(gòu)信息。GetFieldValue 方法聲明一個(gè)方法,在調(diào)用回調(diào)方法時(shí),實(shí)施者(如提供者控件)使用該方法檢索接口實(shí)例的字段數(shù)據(jù)。 Sharepoint 可以幫助企業(yè)用戶輕松完成日常工作。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!