我正在構建運行時動態連接Web部件的最佳方法原型。 Essentailly,該應用程序將允許多個不同的應用程序組創建將在SharePoint前端使用的Web部件。所有的Web部件都需要自動檢測使用者和提供者在運行時創建連接。動態SharePoint 2007 WebPart連接
我們要做的是讓webparts發現並自動連接到其他兼容的webparts。當用戶將兩個兼容的部件添加到頁面時,這些部件應該能夠創建適當的連接。我們有一個定義良好的界面用於在部件之間傳遞數據,所以唯一的問題是如何管理連接。要清楚,我們不希望用戶擔心必須自己創建連接。
對於我們的目的而言,「最佳方式」意味着最高效,優雅和/或標準。我們希望儘可能遵循已建立的共享點設計模式,但代碼效率有點重要。
我已經能夠在每個subclassed webpart的oninit事件中使用基礎Web部件類來完成概念驗證。該事件OnInit的抓取當前頁面的SPWebPartManager並通過各部分itereates每一個web部件從基類繼承創建消費者和供應商連接:
SPWebPartManager spManager = SPWebPartManager.GetCurrentWebPartManager(Page) as SPWebPartManager;
foreach (BaseWebPart provider in parts)
{
foreach (BaseWebPart consumer in parts)
{
if (provider != consumer)
{
string connectionId = string.Format("WebPartConnection{0}{1}", consumer.ID, provider.ID);
SPWebPartConnection conn = spManager.SPWebPartConnections[connectionId];
if (conn == null)
{
conn = new SPWebPartConnection()
{
ID = connectionId,
ConsumerID = consumer.ID,
ConsumerConnectionPointID = "WebPartConnectableConsumer",
ProviderID = provider.ID,
ProviderConnectionPointID = "WebPartConnectableProvider"
};
spManager.SPWebPartConnections.Add(conn);
}
}
}
}
謝謝,這就是我問的原因!我有一些同樣的想法,並對整體共識感到好奇。在設計模式中顯示潛在的Web部件連接作爲鏈接的建議很有趣。你能指出我的方向嗎? – etc 2010-06-22 10:38:55