Несколько соединений между двумя веб-частями в sharepoint - PullRequest
1 голос
/ 17 февраля 2011

Я новичок в sharepoint.Я не знаю, возможно ли это или нет.У меня есть две веб-части, одна имеет два значения, которые мне нужно передать второй веб-части.Есть ли способ сделать это, или у меня может быть только одно соединение / Спасибо

У меня есть две визуальные веб-части.В провайдере у меня есть два выпадающих списка, которые мне нужно передать значения потребителю.Вот код:

открытый интерфейс IMyConnection {int AreaId {get;} int TopicId {get;}}

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);
    }
}

Когда я пытаюсь установить соединения, он показывает не оба, а только соединение Темы.

Ответы [ 2 ]

1 голос
/ 04 марта 2011

Одним из решений может быть разделение вашего интерфейса на IAreaProvider и ITopicProvider. Я думаю, что два соединения не отображаются, потому что вы не можете предоставить два соединения для одного и того же интерфейса.

0 голосов
/ 17 февраля 2011

Зависит от того, как устроены веб-части.Большинство из них предназначены только для одного.Если вы пишете свою собственную веб-часть, вы можете указать столько интерфейсов провайдера соединений, сколько вам нужно / нужно.

...