Sharepoint 2010 sharepoint中两个web部件之间的多个连接

Sharepoint 2010 sharepoint中两个web部件之间的多个连接,sharepoint-2010,web-parts,Sharepoint 2010,Web Parts,我是sharepoint的新手。我不知道这是否可能。 我有两个web部件,一个有两个值,我需要将它们传递给第二个web部件。 有没有办法,否则我只能有一个连接/ 谢谢 我有两个可视web部件。在Provider中,我有两个dropdownlists,需要将值传递给消费者。代码如下: 公共接口IMY连接 { int AreaId{get;} int-TopicId{get;} } 当我尝试设置连接时,它不会同时显示两者,而只设置主题连接。这取决于web部件的设计方式。大多数开箱即用的手机只设计有一

我是sharepoint的新手。我不知道这是否可能。 我有两个web部件,一个有两个值,我需要将它们传递给第二个web部件。 有没有办法,否则我只能有一个连接/ 谢谢

我有两个可视web部件。在Provider中,我有两个dropdownlists,需要将值传递给消费者。代码如下:

公共接口IMY连接 { int AreaId{get;} int-TopicId{get;} }


当我尝试设置连接时,它不会同时显示两者,而只设置主题连接。

这取决于web部件的设计方式。大多数开箱即用的手机只设计有一个。如果您编写自己的web部件,您可以根据需要声明任意多个连接提供程序接口。

这取决于web部件的设计方式。大多数开箱即用的手机只设计有一个。如果您编写自己的Web部件,您可以根据需要声明任意多个连接提供程序接口。

一种解决方案可能是将您的接口拆分为IAreaProvider和ITopicProvider。我认为这两个连接没有出现,因为您不能为同一个接口提供两个连接。

一个解决方案可能是将您的接口拆分为IAreaProvider和ITopicProvider。我认为这两个连接没有出现,因为不能为同一个接口提供两个连接

public class Provider : WebPart, IMyConnection
{
    private Control control;

    protected override void CreateChildControls()
    {
        control = Page.LoadControl(_ascxPath);
        Controls.Add(control);
        base.CreateChildControls();
    }

    public int AreaId
    {
        get { return 1; }
    }

    public int TopicId
    {
        get { return 2; }
    }

    [ConnectionProvider("TopicId", "TopicId", AllowsMultipleConnections = true)]
    public IMyConnection SetTopicConnection()
    {
        return this;
    }

    [ConnectionProvider("AreaId", "AreaId", AllowsMultipleConnections = true)]
    public IMyConnection SetAreaConnection()
    {
        return this;
    }
}

public class Consumer : WebPart
{
    private IMyConnection connection;
    private Control control;

    protected override void CreateChildControls()
    {
        control = Page.LoadControl(_ascxPath);
        Controls.Add(control);
    }

    [ConnectionConsumer("TopicId", "TopicId", AllowsMultipleConnections = true)]
    public void GetTopicConnection(IMyConnection theConnection)
    {
        connection = theConnection;
    }

    [ConnectionConsumer("AreaId", "AreaId", AllowsMultipleConnections = true)]
    public void GetAreaConnection(IMyConnection theConnection)
    {
        connection = theConnection;
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {
        if (connection != null)
        {
            //do work
        }
        base.RenderContents(writer);
    }
}