Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I have a task to create a custom filter web part (CFWP) for standard List View web part (LVWP).

I decided to use a connection framework for this task and designed next concept:

LVWP is a provider of table data for CFWP. It's needed to agregate data by fields and show available filter values with list items counters. CFWP implements ITransformableFilterValues to be used as default filter for LVWP. So CFWP is a consumer and provider simultaneously. Here is a fragment of its code:

public class RefinerLikeFiltration : WebPart, ITransformableFilterValues
{
    private IWebPartTable _tableProvider;

    [ConnectionConsumer("Table", AllowsMultipleConnections = true)]
    public void SetConnectionInterface(IWebPartTable provider)
    {
        _tableProvider = provider;
    }

    [ConnectionProvider("Selected Field Value", "ITransformableFilterValues", AllowsMultipleConnections = true)]
    public ITransformableFilterValues SetConnectionInterface()
    {
        return this;
    }

    ...
}

But when I try to connect this CFWP to single LVWP I can't use both connections simultaneously, only one of them at one time. And I get a next text in tooltip when one connection is established and trying to establish second: "A Web Part can only be connected to another Web Part through one connection type. Each connection can have only one connection type.". I understand this as I can't use two types of connection in one time between two web parts.

So please give me a best solution how to resolve it.

BTW I thought about third web part in this chain, that will be an intermediate web part as consumer of CFWP and provider for LVWP and will transfer filter value. How you think about this approach? Thanks in advance.

share|improve this question
add comment

1 Answer 1

Same happened to me when I tried to send two connections from one provider to one consumer...

I tried this, but I obtained the same error:

A -> B
A -> B

To solve this I created a third WebPart between A and B. In my context it had sense, since the new WebPart had a different use than A. So my result was:

A -> B
A -> C -> B

I hope this can help you.

share|improve this answer
    
Thanks @Bargant ! Yes it really may help, but only in one way data flow case. What I need it's a some kind of circular connection: A -> B B -> A I tried to do it with third web part A -> B B -> C C -> A but in that attempt to connect I got message about that circullarr connection is denied. So currently I use direct detection of web part via this.Parent.FindControl(<id_of_second_wp>) for two way data flow between web parts. –  Oleg Savelyev Oct 13 '11 at 7:17
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.