Frage

Hier ist das Problem: Die Verwendung von SPD ist einfach zu ändern, um den Benutzern nicht zu ermöglichen, Webparts aus einer WP -Zone zu schließen / zu minimieren:

WebPartzone Bearbeiten Eigenschaften

Wie können wir das in Code machen? Ich habe mehr als 30 ASPX -Webpartseiten auf einer Website. Ich möchte dies tun, damit niemand Webparts -Eigenschaften ändern kann (schließen, sie löschen usw.).

Das einzige, was ich gefunden habe, ist dieser Link: spwebpartzonetools.

Mehr in SDK lesen bei: WSS 3.0 SDK, Im zweiten wichtigen Absatz heißt es:

Obwohl Sie den Anzeigen, Bearbeiten und neuen Formularen für Listenelemente (dispform.aspx, editform.aspx und newForm.aspx) Webteile hinzufügen können, wird dies in Windows SharePoint -Diensten nicht empfohlen oder unterstützt. Das Hinzufügen von Webpartien zur Auflistung von Seitenansichtsseiten (Allitems.aspx) wird unterstützt.

Das ist also mein Fehler, den ich beheben möchte :). Ich habe diese Regel gebrochen. Mein Problem kann in SPD behoben werden, aber ich weiß nicht, ob das in Code behoben werden kann.

Der Fehler wurde von einem der fabelhaften 40 Vorlagen "inspiriert": BudgetingTrackingMultipleProjects.wsp. Auf der Projektliste auf Dispform.aspx fügt Microsoft weitere Webparts hinzu, um ein Master-Detail-Formular zu erstellen.

War es hilfreich?

Lösung

Ich habe mein Problem wie folgt gelöst: Wenn Sie die Eigenschaften von dispform.aspx in SPD öffnen und die Webpart -Zonen -Eigenschaften ändern, können wir im Souce -Code (ASPX) diese Zeile sehen:

 <WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Title="loc:Main" allowlayoutchange="false" allowpersonalization="false" allowcustomization="false">

Dann habe ich eine einfache Konsolen -App erstellt, die jede Liste besucht, die URL ihrer Dispform.aspx erhalten und sie wie eine reguläre Textdatei öffne. Ich benutze also keine API oder SMTH, nur SPWeb.GetFile (String) - um das Splile zu bekommen und SPWeb.GetFileAsString (URL) Um den ASPX -Inhalt als Zeichenfolge zu erhalten. Dann injiziere ich die Attribute (Leblayoutchange / Persönlichkeit zulassen / Zulassung) In der oben dargestellten Zeile mit nur String -Suche und Ersetzen von Methoden.

Speichern Sie den Inhalt dann mit spFile.savebary () in ASPX -Datei zurück. Das ist es, das nächste Mal dispform.aspx wird der Beitrag angefordert. Der Benutzer kann von dort von Webparts nichts tun. Das ist also meine Methode, um die Eigenschaften der Web -Teilzonen zu ändern. Ich freue mich sehr darauf, andere Lösungen zu sehen.

Andere Tipps

Sie sollten in der Lage sein, diese Eigenschaften nach der Bereitstellung der Web -Teile (dh wenn Sie es nicht als Chris im Manifest des Webparts definiert haben) festlegen zu können Leck) auf jeder Seite und setzen Sie die ZulassClose, erlauben Sie die Eigenschaften usw. zu.

HTH Anders Rask

Sie können dies auch auf die WebPartzone -Steuerung (in Code oder in ASPX) festlegen. Verwenden Sie beispielsweise die Locklayout -Eigenschaft wie folgt:

<WebPartPages:WebPartZone LockLayout="true" runat="server"...>...</...>

/Ww

Müssen Sie es im Code tun? Wenn Sie nur dazu verhindern sollen, dass Benutzer diese Änderungen in Ihren Webteilen vornehmen, wird dies in der Regel durch Bereitstellung des Webparts mit Eigenschaften, die dieses Verhalten angeben, z. B. durch Bereitstellung des Webparts behandelt:

   <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
     <metaData>
       <type name="xxxxx.SharePoint.Common.WebParts.SiteDirectoryWebPartWrapper,
 xxxxxx.SharePoint.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" />
       <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
     </metaData>
     <data>
       <properties>
         <property name="AllowZoneChange" type="bool">False</property>
         <property name="AllowHide" type="bool">False</property>
         <property name="AllowMinimize" type="bool">False</property>
         <property name="AllowClose" type="bool">False</property>
         <property name="AllowEdit" type="bool">True</property>
         <property name="AllowConnect" type="bool">False</property>
         <property name="ExportMode" type="exportmode">All</property>
         <property name="Hidden" type="bool">False</property>
         <property name="TitleUrl" type="string" />
         <property name="Description" type="string">Displays a list of sites
 for the current area (e.g. 'teams') in a treeview. </property>
         <property name="Title" type="string">xxxxx Site Directory
 Web Part</property>
       </properties>
     </data>   
    </webPart> 
</webParts>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top