I have two lists defined:

  • A: Projects (with a lookup column to B)
  • B: Customer

For list A I have two listviews:

  • Open Projects
  • Closed Projects

Now I have a webpart page with three XsltListViewWebParts:

  • A1 Open Projects
  • A2 Closed Projects
  • B customers

I want to connect both webparts A as provider to B:

B gets filter values from both A1 and A2. So if the user selects an Open(A1) or a Closed project(A2) the related customer is shown in webpart B.

Problem is that both A1 and A2 provide the same filter column (customername) and I get an error when configuring the second connection:

[ArgumentException: An item with the same key has already been added.]
   System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) +56
   System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) +10419822
   System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) +12
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.ApplyReceivedFilterData() +903
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.ApplyReceivedConsumerData() +24
   Microsoft.SharePoint.WebPartPages.SPRowToParametersTransformer.GetRowData(Object rowData) +542
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform) +794
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.PerformSelect() +72
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.DataBind() +346
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.EnsureDataBound() +24
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.CreateChildControls() +712
   Microsoft.SharePoint.WebPartPages.BaseXsltListWebPart.CreateChildControls() +2189
   Microsoft.SharePoint.WebPartPages.WebPartMobileAdapter.CreateChildControls() +72
   System.Web.UI.Control.EnsureChildControls() +132
   Microsoft.SharePoint.WebPartPages.DataFormWebPart.Microsoft.SharePoint.WebPartPages.IConnectionData.GetData() +73
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.BeginWebPartDataFetch() +200
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.ActivateV2ConnectionsAndSharePointDataFetch() +123
   Microsoft.SharePoint.WebPartPages.SPWebPartManager.ActivateConnections() +511
   System.Web.UI.WebControls.WebParts.WebPartManager.OnPageLoadComplete(Object sender, EventArgs e) +70
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.Page.OnLoadComplete(EventArgs e) +11070814
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3160

I don't want A1 and A2 to behave as provider at the same time. Only the just selected projects from A1 or A2 should provide the filter for webpart B.

Any ideas how to solve this?

  • Peter, just a thought - this should be completely opposite to it... First the user should select Customer and then both XSLT Web Parts should filter accordingly showing Open and Closed Projects for that customer! – Arsalan Adam Khatri Oct 23 '12 at 16:02
  • Arsalan, thanks for thinking with me, but that is not possible for me in our use case. – Peter Oct 24 '12 at 6:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.