SharePoint 2010: Wie fest Webpart-ID in AllUsersWebPart XML?
Ich habe eine Funktion, die den Bestimmungen einer benutzerdefinierten Standard.aspx - Datei auf meinem publishing site.
In der elements.xml, ich habe verschiedene AllUsersWebPart Knoten, das Auffüllen der Zonen mit web parts. Ich brauche für die Versorgung einer hardcoded ID (guid) zu jedem dieser Webparts an dieser Stelle-weiß jemand, wie dies zu tun?
Ich weiß, dass das format einer webpart-ID ist g_00000000_0000_0000_0000_000000000000, aber wenn ich eine ID-Eigenschaft (siehe unten) und dann aktivieren meine Funktion, die die guids von den webparts sind alle Verschieden.
<AllUsersWebPart WebPartZoneID="TopZone" WebPartOrder="1">
<![CDATA[
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="..." />
<importErrorMessage>...</importErrorMessage>
</metaData>
<data>
<properties>
<property name="ID" type="string">g_FB777184_F9AB_4747_AA71_1BF0C96E535A</property>
</properties>
</data>
</webPart>
</webParts>
]]>
</AllUsersWebPart>
FYI: ich brauche hartcodieren eine ID für alle meine web-Teile, weil ich einen separaten feature-Empfänger nutzt die ID zum suchen jedes Webpart auf der Seite (ich habe 6x identische Teile, die auf der Seite mit dem gleichen Titel) und dann weist er auf ein Publikum, das auf jedes Teil (so dass nur 1 sichtbar ist jederzeit zu einem Benutzer).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie waren so nah. Versuchen Sie es mit der "ID" - Attribut des "AllUsersWebPart" - element (oder wenn die Bereitstellung eines Listenansicht-Webpart mit dem "View" - element):
oder
(Komplett-alternative zu Ihrem original-problem, nicht wirklich eine Antwort auf die Frage):
Warum nutzen Sie nicht die SPWebPartManager (innerhalb des Feature-Empfänger) zu greifen, die Webparts von der Seite, und legen Sie Ihre Eigenschaften, die Art und Weise?
Ich gehe davon aus, dass die 6x identische Stücke werden in der gleichen zone, einer nach dem anderen platziert, so konnte man einfach Durchlaufen und die WebParts in der manager-Klasse, wo die Teile gehören, die in einer bestimmten Zone.
Gute und eine schlechte Nachricht...
Den Ansatz, den ich war mit ist in der Tat gültig, aber es wird nur funktionieren, wenn Sie Ihre Webparts sind nicht platziert in eine Webpart zone. Wenn Sie in einer zone, die Webpart Infrastruktur setzt automatisch den WebPart.ID-Wert (bestätigt auf MSDN).
Um hard-code, der web-Artikel-IDs, die Sie benötigen, um Ihre Webparts werden direkt im Seitenlayout (so, dass man Sie direkt innerhalb der Seite markup).
Persönlich, ich haben sich dafür entschieden, lassen Sie die Webparts in Zonen und stattdessen verwenden Sie eindeutige Titel, die ich später verwenden können in meinem feature-Empfänger zum identifizieren der Teile.