Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/850 33-0

SharePoint Webpart Connections – Webpart als Empfänger und Sender gleichzeitig

Einen Webpart mit Hilfe von Webpart Connections so zu entwickeln, dass er sich mit anderen austauschen kann, sollte kein Problem sein. Ist es auch nicht. Für mein spezielles Szenario war es jedoch notwendig einen Webpart so zu gestalten, dass er sowohl Daten empfangen kann als auch Daten an andere Webparts versenden kann. Klingt nach keiner großen Sache. In meinem Fall sollten drei Webparts Daten miteinander austauschen. Webpart 1 sendet Daten an Webpart 2. Dieser empfängt diese und kann selbst Daten an Webpart 3 versenden. Es werden demnach 2 Webpart Connection Interfaces benötigt.

Die folgenden beiden Methoden samt ihrer Attribute müssen dazu implementiert werden

Sender
[ConnectionProvider(„Parameter“)]
public IWebpartConnectionProvider GetProvider()
{
return this;
}

Empfänger
[ConnectionConsumer(„Parameter“)]
public void RecieveProvider(IWebpartConnectionProvider p)
{
DoSomethingCrazy();
}

Der Empfänger besitzt außerdem die Implementierung für das Senden, welche wie folgt aussieht:
[ConnectionProvider(„ANewParameter“)]
public IWebpartConnectionProvider2 GetProvider()
{
return this;
}

Im Idealfall sollten sich die Webparts, im Bearbeitungsmodus der Seite, verbinden lassen. Ich erhielt jedoch folgende Meldung:

„Web Part connections cannot be created or modified at this time. One or more Web Parts on this page contains more
information about the problem“

Natürlich enthält kein Webpart auf der Seite mehr Informationen über das Problem…

Lösung

Die Lösung für das Problem ist relativ simpel, wenn auch nicht selbsterklärend. Innerhalb der ConnectionProvider und ConnectionConsumer Attributsangabe muss die ConnectionProvider ID festgelegt werden.

[ConnectionProvider(„Parameter“,“ConnectionProviderId“)]
public IWebpartConnectionProvider GetProvider()
{
return this;
}

Das Ergebnis sieht dann wie folgt aus:

Der Webpart lässt sich nun als Empfänger als auch Sender konfigurieren.

Kommentar hinterlassen


Pin It on Pinterest