【问题标题】:Dynamic SharePoint 2007 WebPart Connections动态 SharePoint 2007 WebPart 连接
【发布时间】:2011-03-06 10:17:04
【问题描述】:

我正在对在运行时动态连接 Web 部件的最佳方式进行原型设计。本质上,该应用程序将允许多个不同的应用程序组创建将在 SharePoint 前端使用的 Web 部件。所有 Web 部件都需要自动检测消费者和提供者以在运行时创建连接。

我们要做的是让 webparts 发现并自动连接到其他兼容的 webparts。当用户将两个兼容的部分添加到页面时,这些部分应该能够创建适当的连接。我们有一个定义明确的接口用于在部件之间传递数据,所以唯一的问题是如何管理连接。明确地说,我们不希望用户担心必须自己创建连接。

就我们而言,“最佳方式”是指最高效、最优雅和/或最标准的方式。我们希望尽可能遵循既定的共享点设计模式,但代码效率有些重要。

我已经能够起草一个概念证明,它使用基本 Web 部件类在每个子类 Web 部件的 oninit 事件期间执行此操作。 oninit 事件获取当前页面的 SPWebPartManager 并遍历每个部分,为从基类继承的每个 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);
            }
        }
    }
}

【问题讨论】:

    标签: c# sharepoint sharepoint-2007 web-parts wss-3.0


    【解决方案1】:

    我强烈建议您重新考虑,然后放弃这个想法。

    我知道教所有用户连接 Web 部件可能很困难,而且您可能会让您的功能在有限的场景中发挥作用。

    但在更复杂的情况下,您只是自找麻烦,并且限制了高级用户的可能性。

    • 如果您实现一个(或多个)Web 部件,它可以使用并提供相同的接口。然后将其中两个放在一个页面上 => 无限循环
    • 如果您的用户将两个提供者和两个消费者放在同一个页面上,您将无法按照用户的需要将它们配对。
    • ...

    我的建议是您开发 Web 部件,以便它们可以在有连接和没有连接的情况下工作(如果有连接,可能会隐藏部分 UI)并教您的用户使用连接

    或者您可以半途而废,在设计模式下显示您的 Web 部件时,将它可以连接到的 Web 部件作为链接列出,用户可以单击这些链接进行连接。

    【讨论】:

    • 谢谢,这就是我问的原因!我有一些相同的想法,并对整体共识感到好奇。在设计模式中将潜在的 Web 部件连接显示为链接的建议很有趣。你能指出一个例子的方向吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2011-06-13
    • 2010-10-12
    • 1970-01-01
    • 2011-02-07
    • 2011-08-31
    • 1970-01-01
    相关资源
    最近更新 更多